2
我有以下類,它包含一個字符串字段和一個地圖字段。我想用Jackson將它序列化爲json。Java傑克遜寫對象兩次
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,但顯然它是在先前版本的傑克遜修復的。我也嘗試將方法的名稱更改爲random()
,並且它仍然被調用兩次(它應該的次數)。