ホームページ >バックエンド開発 >Golang >Go で深くネストされた JSON 値にアクセスするにはどうすればよいですか?

Go で深くネストされた JSON 値にアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 01:54:03741ブラウズ

How to Access Deeply Nested JSON Values in Go?

Go で深くネストされた JSON 値にアクセスする

Go では、インターフェイス タイプの動的な性質により、複雑な JSON 構造を処理することが困難になる場合があります。深くネストされた JSON キーと値については、より簡単なアプローチを提供するパッケージ「github.com/bitly/go-simplejson」を検討してください。

go-simplejson を使用するには、次のコマンドを使用してパッケージをインストールします。

<code class="bash">go get github.com/bitly/go-simplejson</code>

このパッケージを使用すると、Get メソッドと GetIndex メソッドを使用して、深くネストされた JSON 値にアクセスできます。たとえば、提供された JSON から「time」パラメータを取得するには、次のようにします。

<code class="go">json, err := simplejson.NewJson([]byte(msg))
if err != nil {
    panic(err)
}

time, _ := json.Get("args").GetIndex(0).Get("time").String()
log.Println(time)</code>

複雑なデータ構造の型構造体を宣言するには、「encoding/json」パッケージを使用できます。たとえば、次の構造体は JSON メッセージを表します:

<code class="go">type Message struct {
   Name  string                 `json:"name"`
   Args  []map[string]interface{} `json:"args"`
}</code>

その後、JSON メッセージをこの構造体にアンマーシャリングできます:

<code class="go">m := Message{}
if err := json.Unmarshal([]byte(msg), &m); err != nil {
    panic(err)
}</code>

以上がGo で深くネストされた JSON 値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。