2013-05-22 13 views
5

पार्स करने के लिए मैं एक json फ़ाइल जो इस तरह दिखता है:मॉडल वर्ग अपरकेस गुण

{ 
    "ANIMALS": { 
    "TYPE": "MAMMAL", 
    "COLOR": "BLACK", 
    "HEIGHT": "45", 

    } 
} 

लेकिन मैं संपत्ति नहीं मिला त्रुटि मिलती है। अगर मैं इसे जानवरों (लोअरकेस) में बदल देता हूं। यह बढ़िया काम करता है। क्या कोई मुझे इस नमूना जेसन फ़ाइल के लिए मॉडल क्लास सुझा सकता है जिसे सही ढंग से पार्स किया जाएगा।

उत्तर

7

आप अपने मामले के लिए नया नामकरण रणनीति को लागू करना चाहिए:

class LowerCaseNamingStrategy extends LowerCaseWithUnderscoresStrategy { 

    private static final long serialVersionUID = 1L; 

    @Override 
    public String translate(String arg0) { 
     return arg0.toUpperCase(); 
    } 
} 

उसके बाद, कॉन्फ़िगर ObjectMapper

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.setPropertyNamingStrategy(new LowerCaseNamingStrategy()); 

भी देखें @JsonProperty एनोटेशन।

+0

अपने जवाब के लिए धन्यवाद {animals:"foo",ANIMALS:"foo"}

private string animals; @JsonProperty("ANIMALS") public String getAnimals(){...} 

परिणाम

उदाहरण

@JsonProperty("ANIMALS") private string animals; 

परिणाम। मैंने @JsonProperty एनोटेशन का उपयोग करके इस समस्या को हल किया। उसके बाद अपना जवाब देखें लेकिन चूंकि आपने सही उत्तर दिया है, इसलिए मैं इसे स्वीकार करूंगा। :) –

3

धन्यवाद मैं आप कैसे जैक्सन कॉन्फ़िगर किया है पर निर्भर करता है दीपक के जवाब के बंद का उपयोग कर @JsonProperty एनोटेशन

@JsonProperty("ANIMALS") 
    private string animals; 
10

बिल्डिंग इस समस्या हल हो जाती है, तो आप सकता है डाल करने के लिए की जरूरत @JsonProperty गेटर्स & संपत्ति के बजाय सेटर्स पर या परिणामस्वरूप JSON में आपको डुप्लिकेट गुण मिल सकते हैं। में ... में ... {ANIMALS:"foo"}

+0

आप सही हैं, गेटटर विधि पर एनोटेशन डालने के बाद, यह केवल अपरकेस एक उत्पन्न करता है ... धन्यवाद – danisupr4

+1

स्वच्छ और सीधे आगे, धन्यवाद –

संबंधित मुद्दे