我正在尝试将 go 结构转换为 JSON。我以为我知道该怎么做,但我对这个程序的输出感到困惑。我错过了什么?package mainimport "fmt"import "encoding/json"type Zoo struct { name string animals []Animal}type Animal struct { species string says string}func main() { zoo := Zoo{"Magical Mystery Zoo", []Animal { { "Cow", "Moo"}, { "Cat", "Meow"}, { "Fox", "???"}, }, } zooJson, err := json.Marshal(zoo) if (err != nil) { fmt.Println(err) } fmt.Println(zoo) fmt.Println(zooJson)}输出:{Magical Mystery Zoo [{Cow Moo} {Cat Meow} {Fox ???}]}[123 125]预期输出(类似的东西):{Magical Mystery Zoo [{Cow Moo} {Cat Meow} {Fox ???}]}{ "name" : "Magical Mystery Zoo", "animals" : [{ "name" : "Cow", "says" : "moo" }, { "name" : "Cat", "says" : "Meow" }, { "name" : "Fox", "says" : "???" } ] }哪里[123 125]来的?
2 回答
DIEA
TA贡献1820条经验 获得超2个赞
编组的结果是[]byte
这样,123
并且125
是 ascii for {
and}
必须导出结构字段才能进行编组工作:
每个导出的 struct 字段都成为对象的成员
温温酱
TA贡献1752条经验 获得超4个赞
您的问题出在结构中的未导出(如果您愿意,可以称之为非公开)字段中。这是 Go Play 上的示例,您可以如何修复它。
此外,如果您不喜欢 JSON 字段的命名方式(在大多数情况下为大写字母),您可以使用 struct 标签更改它们(请参阅json.Marshal doc)。
- 2 回答
- 0 关注
- 318 浏览
添加回答
举报
0/150
提交
取消