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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 04:13:03246ブラウズ

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 までご連絡ください。