Go で JSON 出力を人間が判読できるようにするにはどうすればよいですか?

DDD
リリース: 2024-11-20 18:14:15
オリジナル
589 人が閲覧しました

How to Make JSON Output Human-Readable in Go?

encoding/json を使用して Go で人間が判読できる JSON 出力を生成する方法

Go プログラム (「foo」として知られる) で JSON を出力する場合、有益な場合があります結果を人間が判読できるようにして、解釈しやすくします。この目的では、出力をパイプ処理して jq コマンドライン ツールを使用するのが一般的ですが、この記事では、Go の組み込みのエンコーディング/json パッケージを使用した代替ソリューションを紹介します。

エンコーディング/json パッケージは、次のネイティブ サポートを提供します。外部ツールを必要とせずにインデントされた JSON を生成します。 json.MarshalIndent() 関数を利用するか、json.Encoder.SetIndent() (Go 1.7 以降で利用可能) を呼び出すことで、目的の結果を得ることができます。

たとえば、マップを読み取り可能な JSON にインデントするには:

m := map[string]interface{}{"id": "uuid1", "name": "John Smith"}

data, err := json.MarshalIndent(m, "", "  ")
if err != nil {
    panic(err)
}
fmt.Println(string(data))
ログイン後にコピー

または、SetIndent():

enc := json.NewEncoder(os.Stdout)
enc.SetIndent("", "  ")
if err := enc.Encode(m); err != nil {
    panic(err)
}
ログイン後にコピー

で json.Encoder を使用することもできます。また、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())
ログイン後にコピー
を使用して既存の JSON 文字列をフォーマットすることもできます。

これらの関数の接頭辞とインデントのパラメーターは、インデントのスタイルを決定します。プレフィックスは各新しい行の前にあり、インデントはネストのレベルごとに繰り返されます。

これらのメソッドを活用することで、追加のツールや依存関係を必要とせずに、人間が判読できる JSON を Go で簡単に作成でき、可読性が向上し、 JSON 出力の使いやすさ。

以上がGo で JSON 出力を人間が判読できるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート