13

このような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 に直接ダンプできるようにしたいと思います。

4

1 に答える 1

15

あなたのjsonは、私には地図のように見えます。

type Items map[string][]ImageUrl

あなたがしたいことをするべきです。

于 2013-04-04T18:06:33.713 に答える