JACKSON如何不包含字段的包装器?

时间:2012-02-02 01:45:03

标签: java jackson

JACKSON如何不包含字段的包装器?

public  class AuthType {
    Map<String,String> properties;

    public Map<String, String> getProperties() {
        return properties;
    }

    public void setProperties(Map<String, String> properties) {
        this.properties = properties;
    }

}

返回

{"properties":{"authType":"XYZ"}}

但我希望有

{"authType":"XYZ"}

任何注释?

看起来不支持http://jira.codehaus.org/browse/JACKSON-765任何解决方法吗?

3 个答案:

答案 0 :(得分:1)

从Jackson 1.9开始,您可以使用@JsonUnwrapped注释

public  class AuthType {
    Map<String,String> properties;

    @JsonUnwrapped
    public Map<String, String> getProperties() {
        return properties;
    }

    public void setProperties(Map<String, String> properties) {
        this.properties = properties;
    }
}

答案 1 :(得分:0)

如果您的课程实际上非常简单,请使用杰克逊的custom serializers或简单地将其序列化为tree

答案 2 :(得分:0)

您可以将@JsonAnyGetter添加到地图中;如果您需要阅读它,请定义匹配@JsonAnySetter