]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/json: document what unmarshal of `null` into non-reference type does
authorRuss Cox <rsc@golang.org>
Tue, 13 May 2014 03:38:26 +0000 (23:38 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 13 May 2014 03:38:26 +0000 (23:38 -0400)
Originally it was an error, which made perfect sense, but in issue 2540
I got talked out of this sensible behavior. I'm not thrilled with the "new"
behavior but it's been there since Go 1.1 so we're stuck with it now.

Fixes #6724.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/100430043

src/pkg/encoding/json/decode.go

index dde0d78e327380724270cab3e8b8a45ae7e1339c..af1c908ad77d61f49d2aa6abded0a936480a867f 100644 (file)
@@ -54,6 +54,11 @@ import (
 // If no more serious errors are encountered, Unmarshal returns
 // an UnmarshalTypeError describing the earliest such error.
 //
+// The JSON null value unmarshals into an interface, map, pointer, or slice
+// by setting that Go value to nil. Because null is often used in JSON to mean
+// ``not present,'' unmarshaling a JSON null into any other Go type has no effect
+// on the value and produces no error.
+//
 // When unmarshaling quoted strings, invalid UTF-8 or
 // invalid UTF-16 surrogate pairs are not treated as an error.
 // Instead, they are replaced by the Unicode replacement