Go 構造体を使用した非構造化 JSON の処理 (重複)
任意のキーを使用して非構造化 JSON 応答を処理するコンテキストでは、Go を作成することができます。この動的データ構造に対応する構造体を作成します。
検討してください。提供された 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 } ] } } ] }
このデータを処理するには、提供された回答で示唆されているように、マップを使用して任意のキーを表すことができます:
type Items map[string][]ImageUrl
Items は現在、マップをフィールドとして構造体に移動します。マップのキーは動的な画像サイズを表し、値は個々の画像メタデータを表す ImageUrl 構造体のリストです。
このアプローチにより、サイズに基づいて画像に簡単にアクセスできます。たとえば、「50x100」の画像のリストを取得するには:
item := Items{"thing": {}} item["50x100"]
このアプローチは、任意のキーを持つ非構造化 JSON データを処理するための柔軟なソリューションを提供し、Go 構造体に直接アンマーシャリングできるようにします。
以上がGo で任意のキーを含む非構造化 JSON を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。