ホームページ > バックエンド開発 > Golang > Go の「encoding/json」パッケージは、人間が読みやすいように JSON 出力をフォーマットする方法を提供しますか?

Go の「encoding/json」パッケージは、人間が読みやすいように JSON 出力をフォーマットする方法を提供しますか?

Mary-Kate Olsen
リリース: 2024-11-19 04:13:03
オリジナル
364 人が閲覧しました

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

Go で人間が判読できる JSON 出力用の Jq ラッパー

質問:

オープンソースの Jq ラッパーはありますかGo では、機械可読な JSON 出力を人間が読める形式に変換できます。 format?

答え:

はい、Go のエンコーディング/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 中国語 Web サイトの他の関連記事を参照してください。

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