2 回答
TA贡献1804条经验 获得超2个赞
这是 Go 新程序员的常见错误。
由于语言设计,json.Unmarshal只能编组到导出字段中。
只需将每个字段名称的第一个字母大写即可导出它们。您可以选择添加字段标签来告诉 json.Marshal 使用什么键名。仅当您要使用json.Marshal.
type ResultStruct struct{
Id int `json:"id"`
Guid string `json:"guid"`
Name string `json:"name"`
}
报价encoding/json包:
要将 JSON 解组为结构,Unmarshal 将传入的对象键与 Marshal 使用的键(结构字段名称或其标签)进行匹配,更喜欢精确匹配,但也接受不区分大小写的匹配。Unmarshal 只会设置结构的导出字段。
TA贡献1843条经验 获得超7个赞
你得到一个数组,使用encoding/json包解组它。
type ResultStruct struct {
id int `json:"id"`
guid string `json:"guid"`
name string `json:"name"`
}
type Result struct {
Data []ResultStruct `json:"data"`
}
response := httpClient.Do(request)
var data Result
decErr := json.NewDecoder(response.body).Decode(&data)
fmt.Println(decErr, data)
这应该将数据解组为数组。
- 2 回答
- 0 关注
- 115 浏览
添加回答
举报