我正在努力从以下代码中获得正确的输出:package mainimport ( "encoding/json" "fmt")func main() { var jsonBlob3 = []byte(`[ {"name": "Platypus", "spec": "Monotremata", "id":25 }, {"name": "Quoll", "spec": "Dasyuromorphia", "id":25 } ]`) type Animal2 struct { name string spec string id uint32 } var animals []Animal2 err := json.Unmarshal(jsonBlob3, &animals) if err != nil { fmt.Println("error:", err) } fmt.Printf("%+v\n", animals)}操场片段打印时结构字段为空。我确信某处有一个愚蠢的错误,但我仍然是 Go 的新手,我已经被困在这个问题上好几个小时了。请帮忙。
1 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
这已经出现很多次了。问题是只能对导出的字段进行编组/解组。
通过以大写(大写)字母开头来导出结构字段。
type Animal2 struct {
Name string
Spec string
Id uint32
}
在Go Playground上试一试。
请注意,JSON 文本包含带有小写文本的字段名称,但该json包足够“聪明”以匹配它们。如果它们完全不同,您可以使用 struct 标签来告诉json包如何在 JSON 文本中找到它们(或它们应该如何编组),例如:
type Animal2 struct {
Name string `json:"json_name"`
Spec string `json:"specification"`
Id uint32 `json:"some_custom_id"`
}
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消