首页  >  文章  >  后端开发  >  如何在 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 现在是一个 Go 结构体,地图作为字段。地图的键代表动态图像大小,而值是 ImageUrl 结构的列表,代表单个图像元数据。

这种方法允许根据图像的大小轻松访问图像。例如,要获取“50x100”的图像列表:

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

此方法提供了一种灵活的解决方案,用于处理具有任意键的非结构化 JSON 数据,使您能够将其直接解组到 Go 结构中。

以上是如何在 Go 中有效处理带有任意键的非结构化 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn