golang struct for json com chaves arbitrárias

Eu estou tentando escrever um tipo de estrutura que pode manipular uma resposta json como este

{"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
    }]
  }
}

Como as chaves não são as mesmas todas as vezes ... uma resposta diferente pode ter mais ou menos chaves, diferentes, e como você pode ver com o retorno de 50x100 várias imagens para um tamanho específico, como posso criar uma estrutura que corresponda a isso?

Eu posso fazer como:

type ImageURL struct {
    Url string
    Width, Height int
}

para um item individual e uma lista deles para uma chave específica. Mas como a estrutura de contenção parece?

Algo como:

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

Pode funcionar, mas não posso enumerar todas as possíveis respostas de tamanho de imagem. Também que Image_Urls no final não há realmente uma lista. Eu gostaria de ser capaz de despejá-lo em json.Unmarshal se possível.

questionAnswers(1)

yourAnswerToTheQuestion