From: Carlos C Date: Wed, 10 Aug 2016 14:24:11 +0000 (+0200) Subject: encoding/json: add example for RawMessage marshalling X-Git-Tag: go1.8beta1~1883 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7a974a4c602252ca7db5b35c1236b45ead4c1d54;p=gostls13.git encoding/json: add example for RawMessage marshalling Fixes #16648 Change-Id: I3ab21ab33ca3f41219de9518ac6a39f49131e5e5 Reviewed-on: https://go-review.googlesource.com/26692 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/encoding/json/example_test.go b/src/encoding/json/example_test.go index 555eff93c0..e4dffd942d 100644 --- a/src/encoding/json/example_test.go +++ b/src/encoding/json/example_test.go @@ -174,7 +174,7 @@ func ExampleDecoder_Decode_stream() { } // This example uses RawMessage to delay parsing part of a JSON message. -func ExampleRawMessage() { +func ExampleRawMessage_unmarshal() { type Color struct { Space string Point json.RawMessage // delay parsing until we know the color space @@ -219,6 +219,30 @@ func ExampleRawMessage() { // RGB &{98 218 255} } +// This example uses RawMessage to use a precomputed JSON during marshal. +func ExampleRawMessage_marshal() { + h := json.RawMessage(`{"precomputed": true}`) + + c := struct { + Header *json.RawMessage `json:"header"` + Body string `json:"body"` + }{Header: &h, Body: "Hello Gophers!"} + + b, err := json.MarshalIndent(&c, "", "\t") + if err != nil { + fmt.Println("error:", err) + } + os.Stdout.Write(b) + + // Output: + // { + // "header": { + // "precomputed": true + // }, + // "body": "Hello Gophers!" + // } +} + func ExampleIndent() { type Road struct { Name string