マップを使用した Go での動的 JSON マッピング
Go では、予測不可能なキーを使用して動的 JSON 応答をマッピングするのが難しい場合があります。ただし、マップを利用すると、柔軟なソリューションが提供されます。
キーが異なる次の JSON 応答を考えてみましょう:
{ "items": [ {"name": "thing", "image_urls": { "50x100": [{ "url": "http://site.com/images/1/50x100.jpg", "width": 50, "height": 100 }, { "url": "http://site.com/images/2/50x100.jpg", "width": 50, "height": 100 }], "200x300": [{ "url": "http://site.com/images/1/200x300.jpg", "width": 200, "height": 300 }], "400x520": [{ "url": "http://site.com/images/1/400x520.jpg", "width": 400, "height": 520 }] } } ] }
この動的な性質を捉えるには、マップベースの構造体を作成します。 Go のマップでは任意のキーと値を使用できるため、このシナリオに最適です。
type Items map[string][]ImageURL
ここで、Items 構造体は文字列キー (さまざまな JSON キーを表す) と型 [] の値を含むマップです。 ImageURL.
この構造体を使用するには、個々の画像の ImageURL 構造体を定義しますエントリ:
type ImageURL struct { URL string Width int Height int }
これで、JSON 応答を Items 構造体に直接アンマーシャリングできます:
err := json.Unmarshal(data, &items) if err != nil { // Handle error }
このアプローチでは、動的な JSON 応答に柔軟なマッピングが提供され、考えられるすべてのキーを事前に定義する必要なく、データを取得できます。
以上がGo で予測不可能なキーを含む動的 JSON 応答を効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。