JSON-Datei in Java lesen
![JSON-Datei in Java lesen](/img/Java/feature-image---read-json-file-java.webp)
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