我仍在学习Go(来自Python),并且正在尝试在AWS中自动执行任务。我有这项工作要求,我需要将JSON输出写入文件,但是我正在努力如何打印结构中的所有字段。我缺少Basket
字段。
我希望这样打印:
{
"Basket": [
{
"Name": "Apple",
"Color": "Red"
},
{
"Name": "Banana",
"Color": "Yellow"
}
]
}
但是我只得到这个:
[
{
"Name": "Apple",
"Color": "Red"
},
{
"Name": "Banana",
"Color": "Yellow"
}
]
您可以在Go Playground中找到我的代码。
最佳答案
将水果放在篮子里。
预期输出和实际输出之间的差异在于,数组在预期输出中包装了一个对象。修改相应的Go类型以匹配预期输出的结构。
var data = struct{ Basket []Fruit }{Basket: fruits}
dat, err := json.MarshalIndent(&data, "", " ")
https://play.golang.org/p/7g9HDZ38XxU
或者,更改现有的
Basket
类型以匹配JSON并使用:type Basket struct {
Basket []Fruit
}
...
dat, err := json.MarshalIndent(&Basket{Basket:fruit}, "", " ")