我有一个包含地图属性的json字符串,例如
{"map":{"1":"value"}, ...}
当Jackson将其反序列化为包含属性Map<Long, String> map
的类时,它似乎会执行map.put(null,"1=value")
。在序列化时,它会将对象序列化为相同的格式。
有没有办法让jackson正确地反序列化为只带注释的Map,或者我是否需要制作自定义序列化器。
带有getter / setter的示例对象:
@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public class exampleObject {
Map<Long, String> valueMap;
public Map<Long, String> getValueMap() {
return valueMap;
}
public void setValueMap(Map<Long, String> valueMap) {
this.valueMap = valueMap;
}
}
答案 0 :(得分:0)
试试这个:
public class ExampleObject {
private Map<String, Long> valueMap;
@JsonCreator
public AccountTagVariableDescription(Map<String, Long> valueMap) {
this.valueMap = valueMap;
}
@JsonAnyGetter
public Map<String, Long> getValueMap() {
return valueMap;
}
}