我正在尝试编写一个可以处理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中(如果可能)。
您的json看起来更像是我的地图。
type Items map[string][]ImageUrl
应该做你想做的。