我想反序列化一个包含某个接口数组的对象Entity:type Result struct { Foo int; Bar []Entity;};Entity是由许多结构类型实现的接口。JSON 数据通过每个实体中的“类型”字段标识结构类型。例如{"type":"t1","field1":1}{"type":"t2","field2":2,"field3":3}我将如何以Result正确填充数组的方式反序列化类型。据我所知,我必须:实施UnmarshalJSON上Result。解析Bar为[]*json.RawMessage.将每个原始消息解析为map[string]interface{}.检查原始消息中的“类型”字段。创建适当类型的结构。再次解析原始消息,这次解析为刚刚创建的结构体。这一切听起来非常乏味和无聊。有一个更好的方法吗?或者我是在向后做,并且有更规范的方法来处理异构对象数组?
1 回答
- 1 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消