首頁 >後端開發 >Golang >如何在 Go 中產生人類可讀的 JSON 輸出?

如何在 Go 中產生人類可讀的 JSON 輸出?

Susan Sarandon
Susan Sarandon原創
2024-11-20 11:31:55793瀏覽

How Can I Generate Human-Readable JSON Output in Go?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn