将json解组到嵌套结构
我需要将不同的json字节输入解组到嵌套json结构中。我能够将json解组到struct应用程序中。但是,我无法添加到“status”结构 我试图解组,但这不起作用,因为我的app1和app2的类型是App而不是bytes。如果试图直接设置,则会出现错误“无法将app1(类型App)用作分配中的[]类型App”将json解组到嵌套结构,json,go,struct,Json,Go,Struct,我需要将不同的json字节输入解组到嵌套json结构中。我能够将json解组到struct应用程序中。但是,我无法添加到“status”结构 我试图解组,但这不起作用,因为我的app1和app2的类型是App而不是bytes。如果试图直接设置,则会出现错误“无法将app1(类型App)用作分配中的[]类型App” 不能将单个元素指定给数组字段,因此请转换 status.Apps = app1 status.Apps = app2 差不多 status.Apps = []App{app1, ap
不能将单个元素指定给数组字段,因此请转换
status.Apps = app1
status.Apps = app2
差不多
status.Apps = []App{app1, app2}
或
还有名为buildconfigs
的JSON字段和结构规范JSON中的:“builds”
。在这种情况下,结构的字段始终为空
工作示例您的问题让我有点困惑:但是如果您将JSON数据修改为JSON数组,它将与
解组
一起工作,并且可以无问题地解组状态:
func main() {
jsonData1 := []byte(`
{
"apps": [{
"appname": "php1",
"buildconfigs":"deleted"
},{
"appname": "php2",
"buildconfigs":"exists"
}]
}
`)
var status Status
json.Unmarshal(jsonData1, &status)
fmt.Printf("%+v\n", status)
}
这里的工作示例:谢谢。我认为status.Apps=append(status.Apps,app1)适用于我的用例,因为我可以在循环中调用它。但我正在从另一个软件包获取应用程序信息。我需要为多个调用构建状态结构。
status.Apps = []App{}
status.Apps = append(status.Apps, app1)
status.Apps = append(status.Apps, app2)
func main() {
jsonData1 := []byte(`
{
"apps": [{
"appname": "php1",
"buildconfigs":"deleted"
},{
"appname": "php2",
"buildconfigs":"exists"
}]
}
`)
var status Status
json.Unmarshal(jsonData1, &status)
fmt.Printf("%+v\n", status)
}