mirror of https://github.com/golang/go.git
encoding/json: add example for Indent, clarify the docs.
There was confusion in the behavior of json.Indent; This change attempts to clarify the behavior by providing a bit more verbiage to the documentation as well as provide an example function. Fixes #7821. LGTM=robert.hencke, adg R=golang-codereviews, minux.ma, bradfitz, aram, robert.hencke, r, adg CC=golang-codereviews https://golang.org/cl/97840044
This commit is contained in:
parent
5139293986
commit
1c2cc125fb
|
|
@ -5,6 +5,7 @@
|
|||
package json_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
|
|
@ -127,3 +128,34 @@ func ExampleRawMessage() {
|
|||
// YCbCr &{255 0 -10}
|
||||
// RGB &{98 218 255}
|
||||
}
|
||||
|
||||
func ExampleIndent() {
|
||||
type Road struct {
|
||||
Name string
|
||||
Number int
|
||||
}
|
||||
roads := []Road{
|
||||
{"Diamond Fork", 29},
|
||||
{"Sheep Creek", 51},
|
||||
}
|
||||
|
||||
b, err := json.Marshal(roads)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
var out bytes.Buffer
|
||||
json.Indent(&out, b, "=", "\t")
|
||||
out.WriteTo(os.Stdout)
|
||||
// Output:
|
||||
// [
|
||||
// = {
|
||||
// = "Name": "Diamond Fork",
|
||||
// = "Number": 29
|
||||
// = },
|
||||
// = {
|
||||
// = "Name": "Sheep Creek",
|
||||
// = "Number": 51
|
||||
// = }
|
||||
// =]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,8 +69,9 @@ func newline(dst *bytes.Buffer, prefix, indent string, depth int) {
|
|||
// Each element in a JSON object or array begins on a new,
|
||||
// indented line beginning with prefix followed by one or more
|
||||
// copies of indent according to the indentation nesting.
|
||||
// The data appended to dst has no trailing newline, to make it easier
|
||||
// to embed inside other formatted JSON data.
|
||||
// The data appended to dst does not begin with the prefix nor
|
||||
// any indentation, and has no trailing newline, to make it
|
||||
// easier to embed inside other formatted JSON data.
|
||||
func Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error {
|
||||
origLen := dst.Len()
|
||||
var scan scanner
|
||||
|
|
|
|||
Loading…
Reference in New Issue