期望的Java:
class Root {
@JsonProperty("mymap")
private Map<String, Pojo> map;
}
class Pojo {
@JsonAnnotationThatIHopeExists
private String name; // set to the value of key in 'mymap'
@JsonProperty("val1")
private String val1;
// and many more...
}
JSON:
{
"mymap": {
"a": { "val1": "first val"},
"b": { "val1": "a val" },
"c": { "val1": "some val" }
}
}
我可以通过添加属性&#34; name&#34;:&#34; a&#34;;名称:&#34; b&#34;,名称:&#34; c&#34 ;;在&#34; mymap&#34;中的每个对象中但我宁愿不复制那些信息,同时仍然让杰克逊为我建立一张地图。 我也不想为此写一个自定义反序列化器,因为杰克逊已经完成了99%的工作......
我想知道杰克逊是否有注释可以用来注入&#34; mymap&#34;的关键名称。到他们各自的对象值。
有什么想法吗?
答案 0 :(得分:3)
您想使用@JsonAnyGetter和@JsonAnySetter
@JsonAnyGetter
public Map<String, Object> any() {
return map;
}
@JsonAnySetter
public void set(String name, Object value) {
map.put(name, value);
}