当前位置: 首页 > 知识库问答 >
问题:

具有任意键的json的golang结构[重复]

连坚白
2023-03-14

我正在尝试编写一个能够处理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
    }]
  }
}

由于每次键都不一样…不同的响应可能有或多或少的键,不同的键,正如您可以看到的50x100返回特定大小的多个图像,我如何创建与此匹配的结构?

我可以像这样做:

type ImageURL struct {
    Url string
    Width, Height int
}

以及针对特定键的它们的列表。但包含结构的外观如何?

类似于:

type Images struct {
    50x100 []ImageURL
    ...
}
type Items struct {
    name string
    Image_Urls []Images
}

可能有效,但我无法列举所有可能的图像大小响应。最后的Image_Urls并不是一个真正的列表。我希望能够将它直接转储到json中。如果可能,解组。

共有1个答案

逑景铄
2023-03-14

你的json在我看来更像一张地图。

type Items map[string][]ImageUrl

应该做自己想做的。

 类似资料:
  • 问题内容: 我正在尝试编写一个可以处理json响应的结构类型 由于键每次都不相同…不同的响应可能包含或多或少的键,不同的键,如您所见,使用50x100返回特定大小的多个图像,我如何创建与此匹配的结构? 我可以这样: 用于单个项目,以及用于特定键的列表。但是包含的结构看起来如何? 就像是: 可能有效,但我无法列举所有可能的图像尺寸响应。另外,Image_Urls末尾没有真正的列表。我希望能够将其直接

  • 发现了许多类似的问题(标题),但没有一个解决了我的问题,所以这里是它。 我有一个JSON字符串,其中包含一些已知字段(应该始终存在)以及任意数量的未知/任意字段。 在此示例中,和是已知的字段。和是任意/未知的字段。 未知字段可以具有任何名称(键)和任何值。值类型可以是字符串、布尔值、float64 或 int。 我想要的是找到最简单、最优雅(惯用)的方法来解析这样的消息。 我使用了以下结构: 使用

  • 我正在从我的go程序向API发出http请求。请求正文是一个 JSON 对象,如下所示: 其中XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 如何定义一个允许该部分接

  • 我有一个函数: 其中参数通常是: 其中键,可以是任何值,但值总是(必须是)类型其中,都是函数。 如何使用JSDoc在我的工厂函数中为事件参数记录这个结构? 我能想到的唯一解决方案是制作一个数组,然后我可以像这样使用typedef: 但是我真的想保留原来的结构。 是否可以在我的原始结构中记录此类型定义? 我主要关心的是它在VSCode中的工作,VSCode将这些类型定义从JSDoc中提升出来。

  • 问题内容: 我有一个应用程序,可以根据HTTP请求标头输出为JSON或XML。我可以通过将正确的标签添加到我正在使用的结构中来实现正确的输出,但是我不知道如何为JSON和XML指定标签。 例如,此序列化以更正XML: …这会生成正确的JSON: …但这不适用于任何一个: 问题答案: Go标签以空格分隔。从手册: 按照惯例,标签字符串是由空格分隔的键:“值”对的串联。每个键都是一个非空字符串,由非控

  • 问题内容: 我在网上看到的每个示例都显示了构建数据结构的示例,然后将JSON编组为数据类型。问题是我得到的是JSON的大量转储,使用这种方法似乎很费力。 有没有办法采取大量数据转储并将其解编为类似于对象的地图,其功能类似于json / maps? 我现在所拥有的就是这样… 但是我不能这样称呼它 问题答案: 总的来说,这是一个 坏 主意!但是,如果您确实需要,可以这样做: ..那么您可以使用任何类似