質問:
不明なフィールド名を持つ 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 サイトの他の関連記事を参照してください。