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 を Go で簡単に作成でき、可読性が向上し、 JSON 出力の使いやすさ。
以上がGo で JSON 出力を人間が判読できるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。