Java Jackson注释以放置地图';s键在地图上';POJO值
所需Java:Java Jackson注释以放置地图';s键在地图上';POJO值,java,jackson,Java,Jackson,所需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
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...
}
我可以通过添加属性“name”轻松解决此问题:“a”;名称:“b”,名称:“c”;在“mymap”中的每个对象中,但我不希望复制这些信息,同时仍然让Jackson为我构建一个地图。
我也不想为此编写自定义反序列化程序,因为Jackson已经可以完成99%的工作了
我想知道是否有一个Jackson注释可以用来将“mymap”的键名注入到它们各自的对象值中
有什么想法吗?你想使用@JsonAnyGetter和@JsonAnySetter吗
@JsonAnyGetter
public Map<String, Object> any() {
return map;
}
@JsonAnySetter
public void set(String name, Object value) {
map.put(name, value);
}
@JsonAnyGetter
公共地图任意(){
返回图;
}
@JSONANYSETER
公共无效集(字符串名称、对象值){
map.put(名称、值);
}
@JsonAnyGetter
public Map<String, Object> any() {
return map;
}
@JsonAnySetter
public void set(String name, Object value) {
map.put(name, value);
}