2016-01-05 10 views
5

का उपयोग करके फ़ाइल करने के लिए जेसन ऐरे को कैसे लिखें, मैंने एक जेसन फ़ाइल बनाई जहां मैं लिखने वाले जावा ऑब्जेक्ट को ऐरे तत्व के रूप में लिखना चाहता था। मैं जैक्सन का उपयोग कर रहा हूँ।जैक्सन

try{ 
      String json; 
      String phyPath = request.getSession().getServletContext().getRealPath("/"); 
      String filepath = phyPath + "resources/" + "data.json"; 
      File file = new File(filepath); 
      if (!file.exists()) { 
       System.out.println("pai nai"); 
       file.createNewFile();    
      } 
      json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(story); 
      Files.write(new File(filepath).toPath(), Arrays.asList(json), StandardOpenOption.APPEND);  
    } 

यह नहीं है क्या मैं वास्तव में मैं सिर्फ Json की एक सरणी जहां मैं जावा वस्तु जोड़ने बनाने की जरूरत .it

{ 
    "storyTitle" : "ttt", 
    "storyBody" : "tttt", 
    "storyAuthor" : "tttt" 
} 
{ 
    "storyTitle" : "a", 
    "storyBody" : "a", 
    "storyAuthor" : "a" 
} 

की तरह डेटा बनाता चाहते हैं, डेटा इस

[{ 
    "storyTitle" : "ttt", 
    "storyBody" : "tttt", 
    "storyAuthor" : "tttt" 
} 
,{ 
    "storyTitle" : "a", 
    "storyBody" : "a", 
    "storyAuthor" : "a" 
}] 
की तरह होना चाहिए
+0

असंबद्ध टिप: यदि फ़ाइल मौजूद नहीं है तो फ़ाइल बनाना आवश्यक नहीं है। बस इसे लिखें। – Henry

+0

'writeValueAsString (कहानी);' क्या आप कोड दिखा सकते हैं जो परिभाषित करता है कि 'कहानी' क्या है? – PDStat

+0

मुझे लिखने का तरीका मिला है मैंने इसे एरे – Sayem

उत्तर

4

जैक्सन JSON फ़ाइल को JSON फ़ाइल लिखने के लिए अंतर्निहित विधियां प्रदान करता है। आप इस

ObjectMapper mapper = new ObjectMapper(); 
ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter()); 
writer.writeValue(new File("D:/cp/dataTwo.json"), jsonDataObject); 
//new file(path of your file) 

और jsonDataObject अपने वास्तविक वस्तु (जैसे वस्तु या सरणी) जो आप फ़ाइल में लिखना चाहते है के लिए कोड लाइन के इन प्रकार का उपयोग कर सकते हैं।

+1

के रूप में लिखा है, मैंने हर बार जब मैंने नया डेटा बनाया था तो मैंने इसे पिछले डेटा ओवरराइड करने की कोशिश की थी। मुझे जेसन सरणी के एक elemen के रूप में डेटा जोड़ने की आवश्यकता है। – Sayem

+0

किसी भी तरह जैकसन का उपयोग करके लिखित मूल्य की मात्रा को प्रकाशित करने के लिए कैसे? –