diff --git a/README.md b/README.md index 8dc522b..dfd150f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## null [![GoDoc](https://godoc.org/github.com/guregu/null?status.svg)](https://godoc.org/github.com/guregu/null) [![Coverage](http://gocover.io/_badge/github.com/guregu/null)](http://gocover.io/github.com/guregu/null) -`import "gopkg.in/guregu/null.v2"` +`import "gopkg.in/guregu/null.v3"` null is a library with reasonable options for dealing with nullable SQL and JSON values @@ -13,7 +13,7 @@ All types implement `sql.Scanner` and `driver.Valuer`, so you can use this libra ### null package -`import "gopkg.in/guregu/null.v2"` +`import "gopkg.in/guregu/null.v3"` #### null.String Nullable string. @@ -41,7 +41,7 @@ Marshals to JSON null if SQL source data is null. Uses `time.Time`'s marshaler. ### zero package -`import "gopkg.in/guregu/null.v2/zero"` +`import "gopkg.in/guregu/null.v3/zero"` #### zero.String Nullable int64. diff --git a/string.go b/string.go index dbc8528..6ef6e6b 100644 --- a/string.go +++ b/string.go @@ -41,7 +41,7 @@ func NewString(s string, valid bool) String { } // UnmarshalJSON implements json.Unmarshaler. -// It supports string and null input. Blank string input produces a null String. +// It supports string and null input. Blank string input does not produce a null String. // It also supports unmarshalling a sql.NullString. func (s *String) UnmarshalJSON(data []byte) error { var err error @@ -60,7 +60,7 @@ func (s *String) UnmarshalJSON(data []byte) error { default: err = fmt.Errorf("json: cannot unmarshal %v into Go value of type null.String", reflect.TypeOf(v).Name()) } - s.Valid = (err == nil) && (s.String != "") + s.Valid = err == nil return err } diff --git a/string_test.go b/string_test.go index 41d5a7c..38f80bb 100644 --- a/string_test.go +++ b/string_test.go @@ -52,7 +52,9 @@ func TestUnmarshalString(t *testing.T) { var blank String err = json.Unmarshal(blankStringJSON, &blank) maybePanic(err) - assertNullStr(t, blank, "blank string json") + if !blank.Valid { + t.Error("blank string should be valid") + } var null String err = json.Unmarshal(nullJSON, &null)