杰克逊:忽略Json配置值

时间:2010-11-12 18:57:24

标签: java json jackson

我有以下json文件:


{
  "segments": {        
            "externalId": 123, 
            "name": "Tomas Zulberti", 
            "shouldInform": true, 
            "id": 4
   }
}

但是java模型如下:


public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}

当杰克逊解析时,它会引发异常,因为“externalId”字段没有getter或setter。它有一个可以用来忽略json字段的装饰器吗?

2 个答案:

答案 0 :(得分:68)

您可以使用注释@JsonIgnoreProperties;如果它只是你想要跳过的一个值,就像:

@JsonIgnoreProperties({"externalId"})

或忽略任何无法使用的内容:

@JsonIgnoreProperties(ignoreUnknown=true)

还有其他方法可以执行此操作,暂停查看FasterXML Jackson wiki

答案 1 :(得分:2)

我们也可以使用mapper.enable(DeserializationFeature。 FAIL_ON_IGNORED_PROPERTIES ); 而是@JsonIgnoreProperties(ignoreUnknown = true)

但对于特定属性,我们可以使用

@JsonIgnoreProperties({"externalId"})
public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}