So lesen Sie eine JSON-Datei in Java mit einer einfachen JSON-Bibliothek
Ich möchte das lesenJSON
Datei mit Java mit JSON Simple Library.
MeineJSON
Datei sieht so aus:
[
{
"name":"John",
"city":"Berlin",
"cars":[
"audi",
"bmw"
],
"job":"Teacher"
},
{
"name":"Mark",
"city":"Oslo",
"cars":[
"VW",
"Toyata"
],
"job":"Doctor"
}
]
Dies ist der Java-Code, den ich zum Lesen dieser Datei geschrieben habe:
package javaapplication1;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JavaApplication1 {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("c:\\file.json"));
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("name");
System.out.println(name);
String city = (String) jsonObject.get("city");
System.out.println(city);
String job = (String) jsonObject.get("job");
System.out.println(job);
// loop array
JSONArray cars = (JSONArray) jsonObject.get("cars");
Iterator<String> iterator = cars.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Aber ich bekomme folgende Ausnahme:
Ausnahme im Thread "main" java.lang.ClassCastException: org.json.simple.JSONArray kann nicht in org.json.simple.JSONObject um javaapplication1.JavaApplication1.main (JavaApplication1.java:24) umgewandelt werden
Kann mir jemand sagen, was ich falsch mache? Die gesamte Datei ist ein Array und es gibt Objekte und ein weiteres Array (Autos) im gesamten Array der Datei. Aber ich weiß nicht, wie ich das ganze Array in ein Java-Array analysieren kann. Ich hoffe, jemand kann mir mit einer Codezeile helfen, die mir in meinem Code fehlt.
Vielen Dank