如何在struct中解组多维数组

时间:2018-05-16 05:38:53

标签: arrays go struct

我有以下数据: -

<div *ngIf="weather$ | async as weather">
    {{weather.base}}
    <!-- other properties of weather -->
</div>

我有以下结构: -

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

中代表Users multidimensional array

1 个答案:

答案 0 :(得分:1)

在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