【发布时间】:2013-01-14 17:29:23
【问题描述】:
我有以下类,其中包含一个字符串字段和一个地图字段。我想使用 Jackson 将其序列化为 json。
public class Mapping
private String mAttribute;
@JsonIgnore
private Map<String, String> mMap;
@JsonAnyGetter
public Map<String, String> getMap() {
//some logic to populate map
}
@JsonAnySetter
public void put(// some params) {
//some more logic
}
@JsonProperty(value = "attribute")
public String getAttribute() {
return mAttribute;
}
public void setAttribute(String aAttribute) {
mAttribute= aAttribute;
}
}
我实例化一个Mapping 对象,然后使用ObjectMapper 将其写入文件。
ObjectMapper om = new ObjectMapper();
om.writeValue(destFile, myMappingObject);
由于某种原因,它两次写入Mapping 实例myMappingObject。我假设我没有在某处设置一些可见性选项,但我不知道在哪里。
json 看起来像这样,只是它在文件中出现了两次。
{
"attribute" : "someValue",
"map-key1" : "map-value1",
"map-key2" : "map-value2"
}
有this,但显然它已在先前版本的 Jackson 中修复。我还尝试将方法的名称更改为random(),但它仍然被调用了两次(它应该调用的次数)。
【问题讨论】: