在Jackson中反序列化JSON属性

时间:2013-06-11 18:37:53

标签: java json jackson deserialization

我有一个JSON文件:

{
    "id1" : {
       ...
    },
    "id2" : {
       ...
    }
}

我正在使用mapper.readerForUpdating(object).readValue(jsonFile)并希望读者只读取与object类在注释中提供的id相对应的数据。有没有办法用“id1”或类似的东西来注释object的类,以便mapper只读取“id1”中的值?

1 个答案:

答案 0 :(得分:0)

如果 id1 是静态的,我可以想出一个简单的解决方案。创建一个包装类,其中包含一个与您想要的字段相对应的getter(和setter)忽略所有其他属性,如下所示:

@JsonProperty("id1")
public MyBean getCustomId()
{
     ...
}

@JsonProperty("id1")
public void setCustomId()
{
     ...
}

第二个选项是使用@JsonSerialize@JsonDeserialize注释并编写您的自定义逻辑。