ホームページ > バックエンド開発 > Golang > 予期しないフィールド名を含む JSON を Go 構造体にアンマーシャリングする方法

予期しないフィールド名を含む JSON を Go 構造体にアンマーシャリングする方法

Mary-Kate Olsen
リリース: 2024-12-24 12:29:18
オリジナル
784 人が閲覧しました

How to Unmarshal JSON with Unexpected Field Names into a Go Struct?

不明なフィールド名を持つ JSON を構造体にアンマーシャリングする

質問:

不明なフィールド名を持つ JSON をアンマーシャリングすることは可能ですか?あらかじめ与えられた条件を維持しながら、 Structure?

問題:

不明なフィールド名が共通の構造をラップしている JSON 応答を考えてみましょう。この構造は構造体にマップする必要がありますが、フィールド名は異なります。

{
    "unknown_field": {
            "known_field_1": [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500]],
            "known_field_2": [[11,21,31,41,51]],
            "known_field_3": [[12,22,32,42,52],[14,44,34,44,54]]
        }
}
ログイン後にコピー

答え:

はい、次のようなマップを使用してそのような JSON をアンマーシャリングすることができます。ルート構造体要素。キーは未知のフィールド名、値は既知のフィールド名です。 struct.

type mData struct {
    KnownField1 [][5]int `json:"known_field_1"`
    KnownField2 [][5]int `json:"known_field_2"`
    KnownField3 [][5]int `json:"known_field_3"`
}
ログイン後にコピー
var data map[string]mData
if err := json.Unmarshal(body, &data); err != nil {
    panic(err)
}
ログイン後にコピー

出力:

map[unknown_field:{[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}]
unknown_field {[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}
ログイン後にコピー

以上が予期しないフィールド名を含む JSON を Go 構造体にアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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