json.Marshal()json.MarshalIndent()[]bytejson.MarshalIndent()
MarshalIndent类似于Marshal,但适用缩进格式化输出。
参见这个简单的例子:
type Entry struct {
Key string `json:"key"`
}
e := Entry{Key: "value"}
res, err := json.Marshal(e)
fmt.Println(string(res), err)
res, err = json.MarshalIndent(e, "", " ")
fmt.Println(string(res), err)
输出(尝试在Go Playground):
{"key":"value"} <nil>
{
"key": "value"
} <nil>
type Entry struct {
Key string `json:"key"`
}
e := Entry{Key: "value"}
enc := json.NewEncoder(os.Stdout)
if err := enc.Encode(e); err != nil {
panic(err)
}
enc.SetIndent("", " ")
if err := enc.Encode(e); err != nil {
panic(err)
}
输出(在上试试这个):
{"key":"value"}
{
"key": "value"
}