猿问

带有任意键的json的golang结构

我正在尝试编写一个可以处理这样的 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 中。


白板的微信
浏览 205回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答