1 回答

TA貢獻1788條經驗 獲得超4個贊
您根本無法編組或解組這些字段,因為這些字段未導出。但是要執行您所描述的操作,只需轉換為沒有(或不同)結構標記的等效類型。因為它是一個嵌套切片,所以您必須對其進行迭代。
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 關注
- 119 瀏覽
添加回答
舉報