2011-04-20 15 views
5

मैं इस पोस्ट का जिक्र कर रहा हूं: convert json to object using jackson, और स्टैक्समैन द्वारा आखिरी उत्तर, जो कहता है कि यह जैक्सन 1.7 में कॉन्फ़िगरेशन सेट करने के लिए संभव है जैसे जैक्सन उत्पादन शुरू करता है (और शायद पार्सिंग भी हो सकता है?) जेएसओएन में शीर्ष-स्तर टैग/सेगमेंट।जैक्सन जेएसओएन: शीर्ष स्तर सेगमेंट समावेशन

क्या कोई उस कॉन्फ़िगरेशन को सेट करने के तरीके पर कुछ प्रकाश डाल सकता है, और यह केवल JSON पीढ़ी या पार्सिंग के लिए भी है?

बहुत बहुत धन्यवाद!

उत्तर

4

आपको को WRAP_ROOT_VALUE सुविधा के साथ बनाने और कॉन्फ़िगर करने की आवश्यकता है, उदा।

विशेषता यह है कि जड़ मूल्य बनाने के लिए सक्रिय किया जा सकता है (आमतौर पर JSON वस्तु लेकिन किसी भी प्रकार के हो सकते हैं) एक ही प्रॉपर्टी JSON ऑब्जेक्ट है, जहां "रूट नाम के रूप में कुंजी के भीतर लिपटे:

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); 

javadoc देखें ", एनोटेशन इंट्रोस्पेक्टर द्वारा निर्धारित अनुसार (जेएक्सबी के लिए esp। @XmlRootElement.name का उपयोग करता है) या फ़ॉलबैक (गैर-योग्य क्लास नाम)। फ़ीचर ज्यादातर जेएक्सबी संगतता के लिए है।

डिफ़ॉल्ट सेटिंग गलत है, जिसका अर्थ है रूट मान लपेटा नहीं गया है।

जावाडोक भी कहना है कि यह अभी तक लागू नहीं किया गया, लेकिन मैं इसे जैक्सन स्रोत में इस्तेमाल किया जा रहा देख सकते हैं, तो यह ठीक काम कर सकते हैं। हालांकि, मैंने वास्तव में इसे खुद कोशिश नहीं की है।

+0

धन्यवाद, skaffman। मैंने एक नमूना की कोशिश की, और यह काम करता है। DeserializationConfig.Feature पर अनुरूप सेटिंग, हालांकि, अभी तक लागू नहीं किया प्रतीत होता है। – Anand

+2

सही। यदि आप यह देखना चाहते हैं कि जोड़ा जा रहा है, तो एक जिरा प्रविष्टि और/या एक के लिए वोट जोड़ना सुनिश्चित करें (अगर कोई अस्तित्व में है तो भूल जाओ) - इसमें कई प्रतिस्पर्धी फीचर अनुरोध हैं, और यह जोड़ने के लिए आसान होना चाहिए, यह नहीं है सबसे अधिक मांग के लिए सुविधा (AFAIK) – StaxMan

+2

धन्यवाद, StaxMan। मैंने इसके लिए http://jira.codehaus.org/browse/JACKSON-558 बनाया है। – Anand

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