使用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中文網其他相關文章!