我有不同的json字节输入,我需要将其解编为嵌套的json结构。我能够将json解组到struct App中。但是我无法添加到“状态”结构。
我试图解组,但是由于我的app1和app2是App类型而不是字节类型,因此无法正常工作。尝试直接设置会产生错误“无法将app1(App类型)用作分配中的[] App类型”
package main
import (
"encoding/json"
"fmt"
"reflect"
)
type App struct {
Appname string `json:"appname"`
Builds string `json:"builds"`
}
type Status struct {
Apps []App `json:"apps"`
}
func main() {
jsonData1 := []byte(`
{
"appname": "php1",
"buildconfigs":"deleted"
}
`)
jsonData2 := []byte(`
{
"appname": "php2",
"buildconfigs":"exists"
}
`)
// unmarshal json data to App
var app1 App
json.Unmarshal(jsonData1, &app1)
var app2 App
json.Unmarshal(jsonData2, &app2)
var status Status
//json.Unmarshal(app1, &status)
//json.Unmarshal(app2, &status)
status.Apps = app1
status.Apps = app2
fmt.Println(reflect.TypeOf(app1))
fmt.Println(reflect.TypeOf(app1))
}
您无法将单个元素分配给数组字段,因此请转换
status.Apps = app1
status.Apps = app2
像
status.Apps = []App{app1, app2}
要么
status.Apps = []App{}
status.Apps = append(status.Apps, app1)
status.Apps = append(status.Apps, app2)
也是您的JSON字段命名为,buildconfigs
并位于struct规范中json:"builds"
。在这种情况下,结构的字段始终为空。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句