Работа над моим первым проектом Go, и у меня возникли проблемы, связанные с некоторыми сложными структурами данных. На данный момент, я mocking up the response из API, который возвращает объект JSON, содержащий 2 свойства:Обработка JSON API Response
columns
содержит массив полей в порядке их следует обрабатыватьdata
содержит массив объектов, содержащий свойства перечислены вcolumns
мне нужно итерация по data
массиву/срезу и, в пределах того, итерации по columns
массиву/срезу и извлечь текущее свойство из текущего объекта данных. Я неправильно обрабатываю структуру данных. Много проб и ошибок оставило меня со следующим кодом и достаточно разочарованием, чтобы решить, что мне просто нужно задать вопрос.
res, err := http.Get("http://roadmap-proto.robwilkerson.org/demo.json")
failOnError(err, "Uh oh")
defer res.Body.Close()
// Decode and process the JSON response
// var v map[string]interface{}
type View struct {
Columns []string `"json:columns"`
Data map[string]interface{} `"json:data"`
}
v := View{}
json.NewDecoder(res.Body).Decode(&v)
log.Printf("[====>] Data: %s", v)
Выход log.Printf()
это:
Data: {[id avatar name email phone address] map[]}
columns
, кажется, читает хорошо, но не данные. В конечном итоге мне нужно зациклиться на этом и записать каждое поле в ячейку Excel, но до сих пор я даже не могу заставить данные «загружать» должным образом.
Любой толчок в правильном направлении был бы очень признателен.
UPDATE
Я случайно пропущено некоторые ключевые данные: В любой вызов к API, количество и названия столбцов могут быть разными. В рамках данного вызова все объекты массива data
будут одинаковыми, но каждый вызов может быть очень и очень разным. Я не могу определить статический struct
и иметь эту работу.
Если вы данные динамические, используйте карту – slebetman