JSON-Datei in Java lesen

Siddharth Swami 12 Oktober 2023
JSON-Datei in Java lesen

JavaScript Object Notation ist eine leichte und textbasierte Sprache zum Speichern und Übertragen von Daten. Objekte und Arrays sind zwei Datentypen, die durch die JSON-Datei dargestellt werden.

In diesem Tutorial wird gezeigt, wie Sie eine JSON-Datei in Java lesen.

Um die JSON-Datei zu lesen, verwenden wir die Funktion FileReader(), um ein FileReader-Objekt zu initiieren und die angegebene JSON-Datei zu lesen.

In unserem Beispiel lesen wir die folgende Datei.

{
    "firstName": "Ram",
    "lastName": "Sharma",
    "age": 26
    },

    "phoneNumbers": [
        {
            "type": "home",
            "phone-number": "212 888-2365"
        }
    ] 
}

Um den Inhalt dieser Datei zu analysieren, verwenden wir die Java-Bibliothek json.simple. Wir müssen zwei Klassen aus der Bibliothek java.simple importieren, die Klasse org.json.simple.JSONArray und org.json.simple.JSONObject. Das JSONArray hilft uns, Elemente in Form eines Arrays zu lesen, und das JSONObject hilft uns, die im JSON-Text vorhandenen Objekte zu lesen.

Im folgenden Code haben wir eine JSON-Datei gelesen, die bereits auf dem System vorhanden ist, und drucken daraus den Vor- und Nachnamen aus der Datei.

Zum Beispiel,

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.*;

public class JSONsimple {
  public static void main(String[] args) throws Exception {
    // parsing file "JSONExample.json"
    Object ob = new JSONParser().parse(new FileReader("JSONFile.json"));

    // typecasting ob to JSONObject
    JSONObject js = (JSONObject) ob;

    String firstName = (String) js.get("firstName");
    String lastName = (String) js.get("lastName");

    System.out.println("First name is: " + firstName);
    System.out.println("Last name is: " + lastName);
  }
}

Ausgabe:

First name is: Ram
Last name is: Sharma

Im obigen Beispiel sehen wir den Vor- und Nachnamen, den wir aus der JSON-Datei gelesen haben.

Hier haben wir den in Java in der Klasse org.json.simple.parser.* vorhandenen JSONParser().parse() verwendet, der den JSON-Text aus der Datei parst. Die Methode js.get() holt sich dabei den Vor- und Nachnamen aus der Datei.

Wir können den JSON-Inhalt mit verschiedenen Methoden parsen, aber die Hauptdatei wird mit dem FileReader() gelesen.

Wir können JSON auch direkt aus Strings parsen. Es gibt auch andere Methoden, die die JSON-Strings analysieren können.

Der folgende Code demonstriert die Methode org.json. Hier kopieren wir die komplette Datei und fügen sie in den statischen String json ein. Dann erstellen wir ein Objekt, das dann zum Lesen des JSON-Objekts und des Arrays aus der Datei verwendet wird.

import org.json.JSONArray;
import org.json.JSONObject;

public class JSON2 {
  static String json = "{\"contacDetails\": {\n" + // JSON text in the file is written here
      "            \"firstName\": \"Ram\",\n"
      + "            \"lastName\": \"Sharma\"\n"
      + "    },\n"
      + "    \"phoneNumbers\": [\n"
      + "            {\n"
      + "                \"type\": \"home\",\n"
      + "                \"phone-number\": \"212 888-2365\",\n"
      + "            }\n"
      + "    ]"
      + "}";
  public static void main(String[] args) {
    // Make a object
    JSONObject ob = new JSONObject(json);

    // getting first and last name
    String firstName = ob.getJSONObject("contacDetails").getString("firstName");
    String lastName = ob.getJSONObject("contacDetails").getString("lastName");
    System.out.println("FirstName " + firstName);
    System.out.println("LastName " + lastName);

    // loop for printing the array as phoneNumber is stored as array.
    JSONArray arr = obj.getJSONArray("phoneNumbers");
    for (int i = 0; i < arr.length(); i++) {
      String post_id = arr.getJSONObject(i).getString("phone-number");
      System.out.println(post_id);
    }
  }
}

Ausgabe:

FirstName Ram
LastName Sharma
212 888-2365

Verwandter Artikel - Java JSON