Как разобрать многомерный массив внутри структуры - PullRequest
0 голосов
/ 16 мая 2018

У меня есть следующие данные: -

{"me":[{"id": "0xcfd","Title":"Story of Stackoverflow","Users":[{"id":"1","Name":"MetaBoss"},{"id":"2","Name":"Owner"}],"Tag":"golang,programming"}]}

, и у меня есть следующая структура: -

type Root struct {
    ID string `json:"id,omitempty"`
    Title string `json:"Title,omitempty"`
    Myuser Users `json:"Users,omitempty"` // Users is struct
    Tag string `json:"Tag,omitempty"`
}

type Users struct {
    ID string `json:"id,omitempty"`
    Name string `json:"Name,omitempty"`
}

Чтобы разобрать данные, я пытаюсь сделать следующее -

type Unmarh struct {
    Me []Root `json:"me"`
}

var r Unmarh
err = json.Unmarshal(response, &r)

во время печати r.Me[0].Myuser, я не могу получить данные.

Я получаю ошибку ниже -

json: cannot unmarshal array into go struct field Root.Myuser of type User struct {....Users struct data}

ТребуетсяMyuser должен быть многомерным array типом, а не Users struct.Понятия не имею, как изобразить Users multidimensional array внутри struct

1 Ответ

0 голосов
/ 16 мая 2018

В json ключ Users является массивом, поэтому соответствующее поле Go должно быть срезом.

type Root struct {
    ID    string `json:"id,omitempty"`
    Title string `json:"Title,omitempty"`
    Users []User `json:"Users,omitempty"`
    Tag   string `json:"Tag,omitempty"`
}

https://play.golang.org/p/azE7kPFs02V

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...