34

我有以下 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 字段的装饰器?

4

2 回答 2

70

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

@JsonIgnoreProperties({"externalId"})

或忽略任何不能使用的东西:

@JsonIgnoreProperties(ignoreUnknown=true)

还有其他方法可以做到这一点,其余的请查看FasterXML Jackson wiki

于 2010-11-12T20:42:00.823 回答
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...
}
于 2014-06-26T06:42:32.403 回答