杰克逊:忽略 Json 配置值

2022-09-01 07:23:00

我有以下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...
}

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


答案 1

您可以使用注释 ;如果它只是您要跳过的一个值,如下所示:@JsonIgnoreProperties

@JsonIgnoreProperties({"externalId"})

或者忽略任何不能使用的内容:

@JsonIgnoreProperties(ignoreUnknown=true)

还有其他方法可以做到这一点,休息看看FasterXML Jackson wiki


答案 2

我们也可以使用mapper.enable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);而不是@JsonIgnoreProperties(忽略未知=true)

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

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

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

    // getter and setters here...
}