2012-07-16 13 views
39

मैं एक नया JsonNode कि मैंजेसन नोड में सम्मिलित नए नोड्स कैसे बनाएं?

JsonNode jNode = new ObjectCodec().createObjectNode(); 
इस नोड के साथ

बनाया है, कैसे मैं तो भीतर कुंजी मान युग्म जोड़ सकता हूँ ताकि मैं नए मूल्यों के साथ इस नए नोड का निर्माण कर सकते है? क्या मैं http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html में पढ़ा

jNode.with("newNode").put("key1","value1"); 

का उपयोग कर लेकिन जैक्सन के JsonNode (v1.8) के लिए एपीआई को देखकर जैसे किसी भी तरीके से प्रदर्शित नहीं करता है के बारे में उल्लेख किया है।

उत्तर

55

इन विधियों ObjectNode में हैं: बंटवारा इस प्रकार है कि ज्यादातर संचालन पढ़ JsonNode में शामिल किए गए हैं, लेकिन ObjectNode और ArrayNode में परिवर्तन।

ध्यान दें कि आप सिर्फ पहली पंक्ति को बदल सकते हैं होने के लिए:

ObjectNode jNode = mapper.createObjectNode(); 
// version ObjectMapper has should return ObjectNode type 

या

ObjectNode jNode = (ObjectNode) objectCodec.createObjectNode(); 
// ObjectCodec is in core part, must be of type JsonNode so need cast 
+7

इस StaxMan के लिए धन्यवाद। एक अनुवर्ती प्रश्न जिसे मैं डालना भूल गया था, मैं इस नोड को किसी मौजूदा नोड में कैसे डालूं? –

+0

आमतौर पर आप 'ऑब्जेक्ट नोड' या 'ऐरेनोड' की विधि का उपयोग करके बच्चों को जोड़ते हैं; मैपर का उपयोग केवल रूट नोड्स के निर्माण के लिए किया जाता है। तो 'ऑब्जेक्ट नोड'/'ऐरेनोडेड ' – StaxMan

43

मैं हाल ही में किसी भी ValueNode या ContainerNode (जैक्सन v2.3 बनाने के लिए और भी दिलचस्प तरीका मिल गया है)।

ObjectNode node = JsonNodeFactory.instance.objectNode(); 
+6

में' putObject' या 'addObject' विधि' देखें, इसमें कुछ भी गलत नहीं है। यही है कि सिंगलटन उदाहरण – cesar

+0

हाँ के लिए है, लेकिन किसी कारण से मुझे एक आवृत्ति संदर्भ के बजाय एक आवृत्ति विधि याद आती है – deFreitas

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