2010-11-12 95 views
31

我有以下的JSON文件:杰克逊:忽略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... 
} 

当杰克逊被解析它抛出一个异常监守没有getter或setter的字段“externalId”。它有一个可以用来忽略json字段的装饰器吗?

回答

67

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

@JsonIgnoreProperties({"externalId"}) 

,或者忽略任何不能用于:

@JsonIgnoreProperties(ignoreUnknown=true) 

还有其他的方法来做到这一点,休息检查出​​。

+0

链接的FasterXML杰克逊维基现已不复存在。 – jackthehipster 2016-07-26 12:12:51

2

此外,我们可以使用mapper.enable(DeserializationFeature。FAIL_ON_IGNORED_PROPERTIES); 代替@JsonIgnoreProperties(ignoreUnknown =真)

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

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

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

    // getter and setters here... 
}