2013-04-04 38 views
10

Tôi cố gắng để viết một cấu trúc kiểu có thể xử lý một phản ứng json như thế nàygolang struct cho json với các phím tùy ý

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

Kể từ khi các phím không giống nhau mỗi lần ... một phản ứng khác nhau có thể có nhiều hơn hoặc ít hơn các phím, những cái khác nhau, và như bạn có thể thấy với 50x100 trả lại nhiều hình ảnh cho một kích thước cụ thể làm thế nào tôi có thể tạo ra một cấu trúc phù hợp với điều này?

tôi có thể làm như sau:

type ImageURL struct { 
    Url string 
    Width, Height int 
} 

cho một mục cá nhân, và một danh sách của họ đối với một phím đặc biệt. Nhưng cấu trúc chứa cái nhìn như thế nào?

Cái gì như:

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

Có thể làm việc, nhưng tôi không thể liệt kê tất cả các câu trả lời kích thước hình ảnh càng tốt. Ngoài ra, Image_Urls ở phần cuối cũng không thực sự là một danh sách. Tôi muốn có thể đổ nó vào json.Unmarshal nếu có thể.

Trả lời

11

Con cháu của bạn trông giống một bản đồ cho tôi.

type Items map[string][]ImageUrl 

nên làm những gì bạn muốn.

+0

Oh yea. Tất nhiên! Cảm ơn – MichaelB

Các vấn đề liên quan