杰克逊处理其余的田地

时间:2016-08-21 13:52:14

标签: json jackson

我想知道这是否可行。 我有一个巨大的json文件来解析和修改。 但并非所有的字段都对我有用:我不想只映射我感兴趣的字段,修改它们然后保存整个json所有我不关心的字段保持不变。

然后假设我有很多属性,只有一个我对名为“MyProp”感兴趣,我试过像

public class MyMapper {
    private String myProp;
    private Map remaining = new HashMap();
    public void setMyProp(String myProp) {
        this.myProp = myProp;
    }
    public String getMyProp() {
        return myProp;
    }
    @JsonRemaining
    public Map getRemaining() {
        return remaining;
    }
}

但属性“MyProp”始终为null(直到我删除“extends HashMap”)。 相反,一切都在地图上。

能够将具体字段与地图混合以便与已知字段一起使用而不会丢失未知数,是不是有用(或者它已经可能?)?

最好不要扩展HashMap,而是使用一个字段来保存所有未知字段,如下所示:

{{1}}

在这种情况下你会怎么做?

1 个答案:

答案 0 :(得分:2)

似乎@JsonAnySetter@JsonAnyGetter注释可能有所帮助。所有无意义的问题都被填入一个地图,然后地图内容被转储回json

请参阅此处的操作指南 http://vincentdevillers.blogspot.co.il/2013/08/how-to-map-unknown-json-properties-with.html