組み込み関数を使用して Go で JSON 出力をきれいに出力する
Go プログラムで JSON 出力を扱う場合、多くの場合、これを作成することが望ましいです。人間が読める。 jq はこの目的に使用できますが、Go 標準ライブラリ内には目的の結果を達成できる組み込み関数もあります。
Json Marshal Indenting
coding/json パッケージは、JSON 出力をきれいに印刷するための json.MarshalIndent() 関数を提供します。 2 つの追加パラメータを取ります。
空の文字列をプレフィックスとして、スペースをインデントとして渡すことで、人間が判読できる 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" }
エンコーダーの使用時に 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 中国語 Web サイトの他の関連記事を参照してください。