首頁  >  文章  >  後端開發  >  Go 的「encoding/json」套件是否提供了一種格式化 JSON 輸出以供人類可讀的方法?

Go 的「encoding/json」套件是否提供了一種格式化 JSON 輸出以供人類可讀的方法?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-19 04:13:03249瀏覽

Does Go's `encoding/json` Package Offer a Way to Format JSON Output for Human Readability?

Go 中人類可讀的JSON 輸出的Jq 包裝器

問題:

是否有開源的Jq器for Go 可以將機器可讀的JSON 輸出轉換為人類可讀的

答案:

是的,Go 中的encoding/json 包提供了對格式化JSON 輸出的內建支援。

解決方案:

下面的程式碼示範如何使用json.MarshalIndent()建立縮排的JSON 輸出:

import (
    "encoding/json"
    "fmt"
)

func main() {
    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 字串,則可以使用json.Indent() 進行格式化it:

import "encoding/json"

func main() {
    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"
}

自訂:

您可以使用前綴自訂縮排和縮排函數的縮排參數。例如:

data, err := json.MarshalIndent(m, "+", "-")
if err != nil {
    panic(err)
}

輸出:

{
+--"id": "uuid1",
+--"name": "John Smith"
+}

以上是Go 的「encoding/json」套件是否提供了一種格式化 JSON 輸出以供人類可讀的方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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