ホームページ >バックエンド開発 >Golang >Go で変数構造を含む JSON をデコードするにはどうすればよいですか?

Go で変数構造を含む JSON をデコードするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-01 01:58:11665ブラウズ

How Can I Decode JSON with a Variable Structure in Go?

変数構造を使用した JSON のデコード

JSON データを扱う場合、変化するデータ構造を扱うのは難しい場合があります。このような場合、固定構造体を使用した json.Unmarshal() のような従来のメソッドは実用的ではなくなります。このシナリオの解決策は次のとおりです。

解決策:マップ[文字列]インターフェースにアンマーシャルする{}

事前定義された構造体に依存する代わりに、JSON をアンマーシャルして、汎用のマップ[文字列]インターフェイス{} タイプ。これにより、さまざまな構造の JSON データを処理できるようになります。

次の JSON について考えます:

{ "votes": { "option_A": "3" } }

この JSON に「count」キーを追加するには、次のようにアンマーシャリングできます。

package main

import (
    "encoding/json"
)

func main() {
    in := []byte(`{ "votes": { "option_A": "3" } }`)
    var raw map[string]interface{}
    if err := json.Unmarshal(in, &raw); err != nil {
        panic(err)
    }
    raw["count"] = 1
    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }
    println(string(out))
}

このアプローチにより、固定データ モデルに束縛されずに JSON 構造を簡単に変更できます。 map[string]interface{} タイプは、動的な JSON 構造を柔軟に処理できます。

以上がGo で変数構造を含む JSON をデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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