Objekt zu jsonArray in .json datei hinzufügen ?

Mx1co

Mitglied
Moin,
Ich arbeite mit der org.json libary. Ich habe eine .json datei die wie folgt aussieht:

[CODE lang="java" title="json-datei"][
{
"Stadt": "Berlin",
"Land": "Deutschland",
"Einwohner": [
{
"Name": "Peter Müller",
"Geburtstag": "8.8.1990"
}
]
}
][/CODE]

Dies ist nur eine beispiel datei. Ich hänge nun leider an dem Problem, dass ich nicht weis, wie man durch einen Code einen neuen Einwohner unter dem Array "Einwohner" hinzufügt. Wäre nett, wenn mir jemand bei meinem Problem helfen könnte 🙂.

MfG
 
Java:
import org.json.*;
public class AlleLaender {
  public static void main(String[] args) {
    String json =
      "[\r\n"
    + "  {\r\n"
    + "    \"Stadt\": \"Berlin\",\r\n"
    + "    \"Land\": \"Deutschland\",\r\n"
    + "    \"Einwohner\": [\r\n"
    + "      {\r\n"
    + "        \"Name\": \"Peter Müller\",\r\n"
    + "        \"Geburtstag\": \"8.8.1990\"\r\n"
    + "      }\r\n"
    + "    ]\r\n"
    + "  }\r\n"
    + "]";
    JSONTokener tokener = new JSONTokener(json);
    JSONArray array = new JSONArray(tokener);
    JSONObject dieStadt = array.getJSONObject(0);
    JSONArray einwohner = dieStadt.getJSONArray("Einwohner");
    JSONObject neuerEinwohner = new JSONObject();
    neuerEinwohner.put("Name", "Petra Möller");
    neuerEinwohner.put("Geburtstag", "9.9.1990");
    einwohner.put(neuerEinwohner);
    System.out.println(array.toString(2));
  }
}
 
Java:
import org.json.*;
public class AlleLaender {
  public static void main(String[] args) {
    String json =
      "[\r\n"
    + "  {\r\n"
    + "    \"Stadt\": \"Berlin\",\r\n"
    + "    \"Land\": \"Deutschland\",\r\n"
    + "    \"Einwohner\": [\r\n"
    + "      {\r\n"
    + "        \"Name\": \"Peter Müller\",\r\n"
    + "        \"Geburtstag\": \"8.8.1990\"\r\n"
    + "      }\r\n"
    + "    ]\r\n"
    + "  }\r\n"
    + "]";
    JSONTokener tokener = new JSONTokener(json);
    JSONArray array = new JSONArray(tokener);
    JSONObject dieStadt = array.getJSONObject(0);
    JSONArray einwohner = dieStadt.getJSONArray("Einwohner");
    JSONObject neuerEinwohner = new JSONObject();
    neuerEinwohner.put("Name", "Petra Möller");
    neuerEinwohner.put("Geburtstag", "9.9.1990");
    einwohner.put(neuerEinwohner);
    System.out.println(array.toString(2));
  }
}

Danke erstmal. Jedoch der zweite Teil meiner Frage ist, wie dieses neue array nun in der .json datei gespeichert werden kann. Weil das array ist zwar nun aktualisiert mit dem neuen Member, jedoch steht dieser nicht in der datei
 
Java:
import java.io.*;
import org.json.*;
public class AlleLaender {
  public static void main(String[] args) throws IOException {
    String json = "...";
    JSONTokener tokener = new JSONTokener(json);
    JSONArray array = new JSONArray(tokener);
    JSONObject dieStadt = array.getJSONObject(0);
    JSONArray einwohner = dieStadt.getJSONArray("Einwohner");
    JSONObject neuerEinwohner = new JSONObject();
    neuerEinwohner.put("Name", "Petra Möller");
    neuerEinwohner.put("Geburtstag", "9.9.1990");
    einwohner.put(neuerEinwohner);
    try (FileWriter fw = new FileWriter("dieDatei.json")) {
      fw.write(array.toString(2));
    }
  }
}
 

Zurück
Oben