我有以下类,其中包含一个 String 字段和一个 Map 字段。我想使用 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"
}
有这个,但显然它在杰克逊的早期版本中已修复。我还尝试将方法的名称更改为random()
,它仍然被调用两次(它应该调用的次数)。