2010-11-12 25 views
31

मैं निम्नलिखित json फ़ाइल है:जैक्सन: पर ध्यान न दें Json विन्यास मूल्य


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

लेकिन जावा मॉडल का अनुसरण कर रहा है के रूप में:


public class Segment { 

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

    // getter and setters here... 
} 

जब जैक्सन क्योंकि कोई यह एक अपवाद को जन्म देती है पार्स करने है क्षेत्र "बाहरी आईडी" के लिए गेटर या सेटर। क्या वहां एक सजावट है जिसका प्रयोग किसी जेसन क्षेत्र को अनदेखा करने के लिए किया जा सकता है?

उत्तर

67

आप एनोटेशन @JsonIgnoreProperties का उपयोग कर सकते हैं;

@JsonIgnoreProperties({"externalId"}) 

या कुछ भी अनदेखी करने के लिए है कि नहीं किया जा सकता: अगर यह सिर्फ़ एक मान आप छोड़ना चाहते हैं, की तरह कुछ है

@JsonIgnoreProperties(ignoreUnknown=true) 

वहाँ यह भी करने के लिए अन्य तरीकों से, बाकी जांच करने के लिए कर रहे हैं बाहर FasterXML Jackson wiki

+0

उपयोग कर सकते हैं जुड़ा हुआ FasterXML जैक्सन विकि अब मौजूद नहीं है। – jackthehipster

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... 
} 
संबंधित मुद्दे