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 サイトの他の関連記事を参照してください。