• 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
..
amd64 Loading commit data...
arm Loading commit data...
arm64 Loading commit data...
big Loading commit data...
gc Loading commit data...
mips64 Loading commit data...
ppc64 Loading commit data...
s390x Loading commit data...
ssa Loading commit data...
syntax Loading commit data...
test Loading commit data...
x86 Loading commit data...