Java 连载及;使用Jackson注释在POJO中展开贴图对象

Java 连载及;使用Jackson注释在POJO中展开贴图对象,java,spring-mvc,jackson,Java,Spring Mvc,Jackson,我有一个POJO,其属性名为paramMap,映射类型为 import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo.As; import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; impo

我有一个POJO,其属性名为paramMap,映射类型为

import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

@JsonTypeInfo(include=As.WRAPPER_OBJECT, use=Id.NAME)
public class Pojo {

    @JsonUnwrapped
    private Map<String, Object> paramMap = new HashMap<String, Object>();

    public Map<String, Object> getParamMap() {
        return paramMap;
    }

    public void setParamMap(Map<String, Object> paramMap) {
        this.paramMap = paramMap;
    }
实际产出

{
    "Pojo": {
        "paramMap": {
            "name": "value1",
            "age": 12,
            "date": "12/02/2015"
        }
    }
}
答案是,在
getParamMap()
的getter方法中使用Jackson注释
@JsonAnyGetter
,我们可以得到预期的输出

@JsonAnyGetter
public Map<String, Object> getParamMap() {
    return paramMap;
}
@JsonAnyGetter
公共映射getParamMap(){
返回参数图;
}
注意:这在Jackson项目中仍然是开放的 谢谢这篇文章的作者塔图·萨洛兰塔

@JsonAnyGetter
public Map<String, Object> getParamMap() {
    return paramMap;
}