2017-07-28 5 views
2

Ich habe JSON-Datei:Hinzufügen neuen Schlüsselwert json Knoten in Java

{ 
    "id":1, 
    "name":"abc", 
    "addressDetails": 
     { 
     "City":"NewYork" 
     } 
} 

Ich wollte noch einen Schlüssel-Wert ("PIN-Code": "414141") hinzufügen, um den Knoten 'addressDetails'.

Ich habe versucht, mit:

ObjectMapper mapper = new ObjectMapper(); 
JsonNode root = mapper.readTree(new File("D://test.json")); 
ObjectNode node = mapper.createObjectNode(); 
node.with("addressDetails").put("pinCode", "414141"); 

Aber es ist nicht hinzugefügt zu werden, ist es eine Möglichkeit, dies zu tun?

Antwort

1

können Sie versuchen,

sollten Sie den Dateipfad

ObjectMapper mapper = new ObjectMapper(); 
ObjectNode nodes = mapper.readValue(new File("D:\\test.txt"), 
ObjectNode.class); 
nodes.with("addressDetails").put("pinCode", "414141"); 
mapper.writer().writeValue(new File("D:\\test.txt"), nodes); 
+0

natürlich! Du kannst jede Dateierweiterung schreiben, zB. "D: \\ test.log" –

+0

@sForSujit ja Seine geben FilenotfoundException nach der Änderung der Erweiterung – Vinod

+0

@Vinod müssen Sie eine Datei verwenden, die existiert –

0

Das Problem mit Ihrem Code ändern ist, dass Sie Ihren Wert auf einen neuen JsonObject (node) hinzufügen und nicht den einen (root) die du eingelesen hast. Also musst du es im Prinzip zu root hinzufügen. Um dies jedoch tun zu können, müssen Sie es in eine ObjectNode umwandeln, da keine Methoden zum Hinzufügen zum Knoten bereitstellt.

Also, versuchen Sie so etwas wie die folgenden:

ObjectMapper mapper = new ObjectMapper(); 
JsonNode root = mapper.readTree(new File("D://test.json")); 
ObjectNode node = (ObjectNode) root; 
node.with("addressDetails").put("pinCode", "414141"); 
mapper.writer().writeValue(new File("D:\\test.txt"), node); 
Verwandte Themen