Ich möchte diese JSON
Datei mit Java unter Verwendung der einfachen Bibliothek von json lesen .
Meine JSON
Datei sieht folgendermaßen 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 geschrieben habe, um diese Datei zu lesen:
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 unter javaapplication1.JavaApplication1.main (JavaApplication1.java:24) nicht in org.json.simple.JSONObject umgewandelt werden.
Kann mir jemand sagen, was ich falsch mache? Die gesamte Datei ist ein Array, und im gesamten Array der Datei befinden sich Objekte und ein anderes Array (Autos). Aber ich weiß nicht, wie ich das gesamte Array in ein Java-Array analysieren kann. Ich hoffe, jemand kann mir mit einer Codezeile helfen, die mir in meinem Code fehlt.
Vielen Dank