]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/json: revise docs for Unmarshal into map, slice, array
authorRuss Cox <rsc@golang.org>
Wed, 25 Nov 2015 16:45:16 +0000 (11:45 -0500)
committerRuss Cox <rsc@golang.org>
Thu, 3 Dec 2015 14:54:24 +0000 (14:54 +0000)
Fixes #12972.

Change-Id: Id0611667e6149753c351c0c5e01211340a87d3fd
Reviewed-on: https://go-review.googlesource.com/17230
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/encoding/json/decode.go

index ef08b0c274c7e52347edf894d3f25db0cf92cbd1..6dc1b9d5b63c32934e4216a2f5be16a21a5b6051 100644 (file)
@@ -48,12 +48,22 @@ import (
 //     map[string]interface{}, for JSON objects
 //     nil for JSON null
 //
-// To unmarshal a JSON array into a slice, Unmarshal resets the slice to nil
-// and then appends each element to the slice.
+// To unmarshal a JSON array into a slice, Unmarshal resets the slice length
+// to zero and then appends each element to the slice.
+// As a special case, to unmarshal an empty JSON array into a slice,
+// Unmarshal replaces the slice with a new empty slice.
 //
-// To unmarshal a JSON object into a map, Unmarshal replaces the map
-// with an empty map and then adds key-value pairs from the object to
-// the map.
+// To unmarshal a JSON array into a Go array, Unmarshal decodes
+// JSON array elements into corresponding Go array elements.
+// If the Go array is smaller than the JSON array,
+// the additional JSON array elements are discarded.
+// If the JSON array is smaller than the Go array,
+// the additional Go array elements are set to zero values.
+//
+// To unmarshal a JSON object into a string-keyed map, Unmarshal first 
+// establishes a map to use, If the map is nil, Unmarshal allocates a new map.
+// Otherwise Unmarshal reuses the existing map, keeping existing entries.
+// Unmarshal then stores key-value pairs from the JSON object into the map.
 //
 // If a JSON value is not appropriate for a given target type,
 // or if a JSON number overflows the target type, Unmarshal