我正在尝试编写一个可以像这样处理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.Unmarshal。
答案 0 :(得分:12)
你的json看起来更像是我的地图。
type Items map[string][]ImageUrl
应该做你想做的事。