1 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個贊
您根本無法編組或解組這些字段,因?yàn)檫@些字段未導(dǎo)出。但是要執(zhí)行您所描述的操作,只需轉(zhuǎn)換為沒有(或不同)結(jié)構(gòu)標(biāo)記的等效類型。因?yàn)樗且粋€嵌套切片,所以您必須對其進(jìn)行迭代。
func main() {
a := A{}
err := json.Unmarshal(corpus, &a)
if err != nil {
panic(err)
}
c := C{}
for _, b := range a.B {
c.B = append(c.B, D(b))
}
payload, _ := json.Marshal(c)
fmt.Println(string(payload))
}
type A struct {
B []B
}
type B struct {
X string `json:"x"`
Y float64 `json:"y,string"`
Z float64 `json:"z,string"`
}
type C struct {
B []D
}
type D struct {
X string `json:"x"`
Y float64 `json:"y"`
Z float64 `json:"z"`
}
工作場所示例: https: //play.golang.org/p/pQTcg0RV_RL
- 1 回答
- 0 關(guān)注
- 120 瀏覽
添加回答
舉報