Go 中人類可讀的JSON 輸出
在Go 中,無需外部jq 就可以產生人類可讀的JSON 輸出包裝紙。 encoding/json 套件提供了用於美化 JSON 輸出的內建函數。
使用json.MarshalIndent() 或json.Encoder.SetIndent()
json. MarshalIndent() 函數將Go 值格式化為JSON 字串,並根據字串指定的前綴和縮排進行縮排
例如,要將地圖格式化為JSON:
m := map[string]interface{}{"id": "uuid1", "name": "John Smith"} data, err := json.MarshalIndent(m, "", " ") if err != nil { panic(err) } fmt.Println(string(data))
輸出:
{ "id": "uuid1", "name": "John Smith" }
您也可以使用 json.Encoder.SetIndent()縮排編碼器輸出的方法。
使用json.Indent()
如果您有要格式化的JSON 字串,可以使用json.Indent() 函數:
src := `{"id":"uuid1","name":"John Smith"}` dst := &bytes.Buffer{} if err := json.Indent(dst, []byte(src), "", " "); err != nil { panic(err) } fmt.Println(dst.String())
輸出:
{ "id": "uuid1", "name": "John Smith" }
自訂縮排
縮排字元可以根據您的喜好自訂。預設情況下,前綴為空字串,縮排為單一空格。您可以覆寫這些預設值以建立具有所需縮排樣式的 JSON 輸出。
以上是如何在 Go 中產生人類可讀的 JSON 輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!