2013-11-25 4 views
1

Я пытаюсь отменить json-ответ с сервера на разные типы, но я не знаю, как это сделать.Json unmarshalling in GO

типы, которые работают являются: -

type ServerResponse struct { 
    Total int 
    Data []User 
} 

type User struct { 
    Name string 
    Age int 
} 

и я могу успешно распаковать в формате JSON и получить ожидаемый тип пользователя.

Что я хочу сделать, это обрабатывать различные ответы сервера и конвертировать после факта . например.

type ServerResponse struct { 
    Total int 
    Data []ServerItem 
} 

type User struct { 
    ServerItem 
    Name string 
    Age int 
} 

type Book struct { 
    ServerItem 
    Name  string 
    Author string 
} 

Затем используйте либо пользователь (response.Data) или response.Data. (Пользователь), чтобы сделать его конкретного типа, так что последующие функции проверки типа правильно.

Пожалуйста, дайте мне знать, с чего начать искать эту проблему.

+1

Не мог бы вы привести пример ответа JSON вы хотите распаковать/разобрать? – Kavu

ответ

1

Я не думаю, что это можно сделать легко. Просто расшифруйте до map[string]interface{} и создайте свои материалы из этого.

+0

Спасибо, @Volker. Это был вывод, к которому я пришел, но я надеялся, что что-то пропустил. – user3033000

0

Здесь я написал простую программу, которая анализирует json http://play.golang.org/p/51eiswgznR.

Вы также можете прочитать кодирования/JSon документы http://golang.org/pkg/encoding/json/

+0

Большое спасибо за пример @mawenbao, я собираюсь реализовать что-то подобное для конфигурации моего приложения. – user3033000