Je veux lire ce JSON
fichier avec java en utilisant la bibliothèque simple json.
Mon JSON
fichier ressemble à ceci:
[
{
"name":"John",
"city":"Berlin",
"cars":[
"audi",
"bmw"
],
"job":"Teacher"
},
{
"name":"Mark",
"city":"Oslo",
"cars":[
"VW",
"Toyata"
],
"job":"Doctor"
}
]
Voici le code java que j'ai écrit pour lire ce fichier:
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();
}
}
}
Mais j'obtiens l'exception suivante:
Exception dans le thread "main" java.lang.ClassCastException: org.json.simple.JSONArray ne peut pas être converti en org.json.simple.JSONObject à javaapplication1.JavaApplication1.main (JavaApplication1.java:24)
Quelqu'un peut-il me dire ce que je fais mal? Le fichier entier est un tableau et il y a des objets et un autre tableau (voitures) dans tout le tableau du fichier. Mais je ne sais pas comment je peux analyser le tableau entier dans un tableau java. J'espère que quelqu'un pourra m'aider avec une ligne de code qui me manque dans mon code.
Merci