返回奇怪结果的json.Marshal
我正在尝试将go结构转换为JSON。我以为我知道怎么做,但我被这个程序的输出搞糊涂了。我错过了什么返回奇怪结果的json.Marshal,json,go,Json,Go,我正在尝试将go结构转换为JSON。我以为我知道怎么做,但我被这个程序的输出搞糊涂了。我错过了什么 package main import "fmt" import "encoding/json" type Zoo struct { name string animals []Animal } type Animal struct {
package main
import "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]
预期产出(大致如下所示):
[123 125]
从哪里来
谢谢你的帮助 封送处理的结果是
[]字节
,因此123
和125
是{
和}
的ascii码
必须导出结构字段才能进行封送处理:
每个导出的结构字段都成为对象的成员
您的问题位于结构中的未报告(如果需要,可以称之为非公共)字段中。你怎么能修好它
此外,如果您不喜欢JSON字段的命名方式(大多数情况下都是大写字母),可以使用结构标记对其进行更改(请参见)。这是我在golang structs中遗漏的内容。谢谢你的提醒。
{Magical Mystery Zoo [{Cow Moo} {Cat Meow} {Fox ???}]}
{
"name" : "Magical Mystery Zoo",
"animals" : [{
"name" : "Cow",
"says" : "moo"
}, {
"name" : "Cat",
"says" : "Meow"
}, {
"name" : "Fox",
"says" : "???"
}
]
}