java Flexjson如何序列化包含映射的复杂层次结构
使用Flexjson,我试图序列化一个包含列表的对象(“负载”)。每个MyBean都有一个字段“items”,它是一个映射>;。当我序列化这个负载对象时,映射字段(“items”)是空的
public class Payload {
private List<MyBean> myBeans = new ArrayList<MyBean>();
//the JSON returned has blank values for myBeans.values.items
public String toJson() {
return new JSONSerializer()
.exclude("*.class")
.include("myBeans")
.serialize(this);
}
}
但是,当我直接序列化MyBean对象时,它工作得很好
public class MyBean {
private Map<String, List<SomeBean>> items = new HashMap<String, List<SomeBean>>();
//this works
public String toJson() {
return new JSONSerializer()
.exclude("*.class")
.deepSerialize(this);
}
}
有什么建议吗
# 1 楼答案
在尝试了很多东西之后,我找到了这个解决方案。 我为地图创建了一个自定义转换器。只是复制了Flexjson MapTransformer并注释掉了一个IF条件。下面是新代码
以下是自定义SOMapTransformer: