如何使用內建函數在 Go 中漂亮地列印 JSON 輸出?
Nov 22, 2024 am 04:54 AM使用內建函數在Go 中漂亮地列印JSON 輸出
在Go 程式中處理JSON 輸出時,通常需要列印出來人類可讀。雖然 jq 可以用於此目的,但 Go 標準庫中也有內建函數可以實現所需的結果。
Json Marshal Indenting
The coding/json 套件提供了 json.MarshalIndent() 函數來漂亮地列印 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" } { "id": "uuid1", "name": "John Smith" }
登入後複製
使用 Encoder 時也可以使用 json.Encoder.SetIndent() 方法設定縮排參數:
enc := json.NewEncoder(os.Stdout) enc.SetIndent("", " ") if err := enc.Encode(m); err != nil { panic(err) }
登入後複製
傑森縮排
如果您已有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" }
登入後複製
以上是如何使用內建函數在 Go 中漂亮地列印 JSON 輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)