2015-11-20 7 views
5

मैं एक सुविधा कोडिंग कर रहा हूं जिसमें मैंने जेसन को पढ़ और लिख दिया। हालांकि मैं एक फाइल से जेसन तत्वों को पढ़ सकता हूं लेकिन एक ही लोड ऑब्जेक्ट को संपादित नहीं कर सकता। यहां मेरा कोड है जिस पर मैं काम कर रहा हूं।javax.json.JsonObject ऑब्जेक्ट को संशोधित करने के लिए कैसे करें?

InputStream inp = new FileInputStream(jsonFilePath); 
    JsonReader reader = Json.createReader(inp); 

    JsonArray employeesArr = reader.readArray(); 
    for (int i = 0; i < 2; i++) { 
     JsonObject jObj = employeesArr.getJsonObject(i); 
     JsonObject teammanager = jObj.getJsonObject("manager"); 

     Employee manager = new Employee(); 
     manager.name = teammanager.getString("name"); 
     manager.emailAddress = teammanager.getString("email"); 
     System.out.println("uploading File " + listOfFiles[i].getName()); 
     File file = insertFile(...); 
     JsonObject tmpJsonValue = Json.createObjectBuilder().add("fileId", file.getId()).add("alternativeLink",file.getAlternateLink()).build(); 


     jObj.put("alternativeLink", tmpJsonValue.get("alternativeLink")); <-- fails here 

    } 

मुझे इसे चलाने पर निम्नलिखित अपवाद मिलता है।

Exception in thread "main" java.lang.UnsupportedOperationException 
at java.util.AbstractMap.put(AbstractMap.java:203) 
at com.mongodb.okr.DriveQuickstart.uploadAllFiles(DriveQuickstart.java:196) 
at com.mongodb.okr.App.main(App.java:28) 

उत्तर

6

javadoc of JsonObject राज्यों

JsonObject वर्ग एक अपरिवर्तनीय JSON ऑब्जेक्ट मूल्य (शून्य या अधिक नाम/मान युग्म के अव्यवस्थित संग्रह) का प्रतिनिधित्व करता है। यह भी JSON ऑब्जेक्ट नाम/मूल्य मैपिंग के लिए अपरिवर्तनीय मानचित्र दृश्य प्रदान करता है।

आप इन वस्तुओं को संशोधित नहीं कर सकते हैं।

आपको एक प्रतिलिपि बनाने की आवश्यकता होगी। ऐसा करने का प्रत्यक्ष तरीका प्रतीत नहीं होता है। ऐसा लगता है कि आपको Json.createObjectBuilder() का उपयोग करने की आवश्यकता होगी और इसे स्वयं बनाएं (जुवाडोक में उदाहरण देखें)।

+0

धन्यवाद। वह आवाज सही है लेकिन एक नई वस्तु बनाना कठिन है। अगर उनके पास कुछ आसान दृष्टिकोण है तो जीसन में देख रहे हैं। – wayfare

+0

@ हिमांशु जीसन का अपना उत्परिवर्तनीय 'जेसनऑब्जेक्ट' है। जैक्सन, वैकल्पिक रूप से, 'ऑब्जेक्ट नोड' है जो भी परिवर्तनीय है। –

+0

कोई बड़ी प्राथमिकता है? मुझे बस पढ़ने की जरूरत है -> संपादित करें -> सहेजें। – wayfare

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

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