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 关注
- 180 浏览
添加回答
举报
