2010-11-12 39 views
31

Tôi có tập tin sau json:Jackson: Bỏ qua giá trị cấu hình Json


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

Nhưng mô hình java như sau:


public class Segment { 

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

    // getter and setters here... 
} 

Khi Jackson được phân tích nó đặt ra một ngoại lệ bởi vì không có getter hoặc setter cho trường "externalId". Nó có một trang trí có thể được sử dụng để bỏ qua một lĩnh vực json?

Trả lời

67

Bạn có thể sử dụng chú thích @JsonIgnoreProperties; nếu nó chỉ là một giá trị mà bạn muốn bỏ qua, một cái gì đó như:

@JsonIgnoreProperties({"externalId"}) 

hoặc bỏ qua bất cứ điều gì mà không thể được sử dụng:

@JsonIgnoreProperties(ignoreUnknown=true) 

Có nhiều cách khác để làm điều đó quá, để kiểm tra phần còn lại ra FasterXML Jackson wiki.

+0

Các liên kết FasterXML Jackson wiki nào không còn tồn tại. – jackthehipster

2

Ngoài ra, chúng tôi có thể sử dụng mapper.enable (DeserializationFeature. FAIL_ON_IGNORED_PROPERTIES); thay @JsonIgnoreProperties (ignoreUnknown = true)

nhưng đối với tài sản đặc biệt chúng ta có thể sử dụng

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

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

    // getter and setters here... 
} 
Các vấn đề liên quan