Quiero leer este JSON
archivo con java usando la biblioteca json simple.
Mi JSON
archivo se ve así:
[
{
"name":"John",
"city":"Berlin",
"cars":[
"audi",
"bmw"
],
"job":"Teacher"
},
{
"name":"Mark",
"city":"Oslo",
"cars":[
"VW",
"Toyata"
],
"job":"Doctor"
}
]
Este es el código java que escribí para leer este archivo:
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();
}
}
}
Pero obtengo la siguiente excepción:
Excepción en el hilo "principal" java.lang.ClassCastException: org.json.simple.JSONArray no se puede convertir a org.json.simple.JSONObject en javaapplication1.JavaApplication1.main (JavaApplication1.java:24)
¿Alguien puede decirme qué estoy haciendo mal? Todo el archivo es una matriz y hay objetos y otra matriz (coches) en toda la matriz del archivo. Pero no sé cómo puedo analizar toda la matriz en una matriz java. Espero que alguien pueda ayudarme con una línea de código que me falta en mi código.
Gracias