ホームページ  >  記事  >  バックエンド開発  >  Go で任意のキーを含む非構造化 JSON を効果的に処理するにはどうすればよいですか?

Go で任意のキーを含む非構造化 JSON を効果的に処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-27 09:36:11605ブラウズ

How Can I Effectively Handle Unstructured JSON with Arbitrary Keys in Go?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。