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