2013-04-04 40 views
10

私は鍵が毎回同じではありませんので、このgolang構造体

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

のようなJSONレスポンスを扱うことができる構造体のタイプを記述しようとしています...別の応答が持っていること多かれ少なかれキー、異なるもの、そして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にすぐにダンプすることができるようにしたいと思います。

答えて

11

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

type Items map[string][]ImageUrl 

は、必要な操作を行う必要があります。

+0

ああ。もちろん!ありがとう – MichaelB