Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson注释以放置地图';s键在地图上';POJO值_Java_Jackson - Fatal编程技术网

Java Jackson注释以放置地图';s键在地图上';POJO值

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

所需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...
}
我可以通过添加属性“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);
}