不明なフィールド名を持つ JSON を構造体にアンマーシャリングする
問題:
次の JSON データをアンマーシャリングするJSON 応答の構造が一貫している場合、不明なフィールド名は困難になる可能性があります
解決策:
キー/値ストアとしてマップを使用すると、不明なフィールド名を持つインスタンスを処理できるようになります。マップの値は、JSON データの共通構造を表す構造体である必要があります。
例:
次の 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]] } }
対応する Go構造体:
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) } fmt.Println(data) for k, v := range data { fmt.Println(k, v) }
出力:
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]]}
マップを利用する、コードは未知のフィールド名を効果的に処理しながら、データを既知の構造体に正確に抽出します。フィールド。
以上がGo で不明なフィールド名を持つ JSON をアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。