• Russ Cox's avatar
    encoding/json: fix decoding of null into Unmarshaler, TextUnmarshaler · f444b48f
    Russ Cox authored
    1. Define behavior for Unmarshal of JSON null into Unmarshaler and
    TextUnmarshaler. Specifically, an Unmarshaler will be given the
    literal null and can decide what to do (because otherwise
    json.RawMessage is impossible to implement), and a TextUnmarshaler
    will be skipped over (because there is no text to unmarshal), like
    most other inappropriate types. Document this in Unmarshal, with a
    reminder in UnmarshalJSON about handling null.
    
    2. Test all this.
    
    3. Fix the TextUnmarshaler case, which was returning an unmarshalling
    error, to match the definition.
    
    4. Fix the error that had been used for the TextUnmarshaler, since it
    was claiming that there was a JSON string when in fact the problem was
    NOT having a string.
    
    5. Adjust time.Time and big.Int's UnmarshalJSON to ignore null, as is
    conventional.
    
    Fixes #9037.
    
    Change-Id: If78350414eb8dda712867dc8f4ca35a9db041b0c
    Reviewed-on: https://go-review.googlesource.com/30944Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    f444b48f
Name
Last commit
Last update
..
accuracy_string.go Loading commit data...
arith.go Loading commit data...
arith_386.s Loading commit data...
arith_amd64.s Loading commit data...
arith_amd64p32.s Loading commit data...
arith_arm.s Loading commit data...
arith_arm64.s Loading commit data...
arith_decl.go Loading commit data...
arith_decl_pure.go Loading commit data...
arith_mips64x.s Loading commit data...
arith_ppc64.s Loading commit data...
arith_ppc64le.s Loading commit data...
arith_ppc64x.s Loading commit data...
arith_s390x.s Loading commit data...
arith_test.go Loading commit data...
bits_test.go Loading commit data...
calibrate_test.go Loading commit data...
decimal.go Loading commit data...
decimal_test.go Loading commit data...
doc.go Loading commit data...
example_rat_test.go Loading commit data...
example_test.go Loading commit data...
float.go Loading commit data...
float_test.go Loading commit data...
floatconv.go Loading commit data...
floatconv_test.go Loading commit data...
floatexample_test.go Loading commit data...
floatmarsh.go Loading commit data...
floatmarsh_test.go Loading commit data...
ftoa.go Loading commit data...
gcd_test.go Loading commit data...
hilbert_test.go Loading commit data...
int.go Loading commit data...
int_test.go Loading commit data...
intconv.go Loading commit data...
intconv_test.go Loading commit data...
intmarsh.go Loading commit data...
intmarsh_test.go Loading commit data...
nat.go Loading commit data...
nat_test.go Loading commit data...
natconv.go Loading commit data...
natconv_test.go Loading commit data...
prime.go Loading commit data...
prime_test.go Loading commit data...
rat.go Loading commit data...
rat_test.go Loading commit data...
ratconv.go Loading commit data...
ratconv_test.go Loading commit data...
ratmarsh.go Loading commit data...
ratmarsh_test.go Loading commit data...
roundingmode_string.go Loading commit data...