首頁 >後端開發 >Golang >如何在 Go 中有效處理帶有任意鍵的非結構化 JSON?

如何在 Go 中有效處理帶有任意鍵的非結構化 JSON?

Susan Sarandon
Susan Sarandon原創
2024-11-27 09:36:11629瀏覽

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 現在是一個Go 結構體,地圖作為欄位。地圖的鍵代表動態影像大小,而值是 ImageUrl 結構的列表,代表單一影像元資料。

這種方法允許根據影像的大小輕鬆存取影像。例如,要獲取“50x100”的圖像列表:

item := Items{"thing": {}}
item["50x100"]

此方法提供了一種靈活的解決方案,用於處理具有任意鍵的非結構化JSON 數據,使您能夠將其直接解組到Go 結構中。

以上是如何在 Go 中有效處理帶有任意鍵的非結構化 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn