ฉันต้องการอ่านJSON
ไฟล์นี้ด้วย java โดยใช้ json simple library
JSON
ไฟล์ของฉันมีลักษณะดังนี้:
[
{
"name":"John",
"city":"Berlin",
"cars":[
"audi",
"bmw"
],
"job":"Teacher"
},
{
"name":"Mark",
"city":"Oslo",
"cars":[
"VW",
"Toyata"
],
"job":"Doctor"
}
]
นี่คือรหัส java ที่ฉันเขียนเพื่ออ่านไฟล์นี้:
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();
}
}
}
แต่ฉันได้รับข้อยกเว้นต่อไปนี้:
ข้อยกเว้นในเธรด "main" java.lang.ClassCastException: org.json.simple.JSONArray ไม่สามารถส่งไปยัง org.json.simple.JSONObject ที่ javaapplication1.JavaApplication1.main (JavaApplication1.java:24)
ใครช่วยบอกทีว่าฉันทำอะไรผิด? ไฟล์ทั้งหมดเป็นอาร์เรย์และมีวัตถุและอาร์เรย์อื่น (รถยนต์) อยู่ในอาร์เรย์ทั้งหมดของไฟล์ แต่ฉันไม่รู้ว่าฉันจะแยกวิเคราะห์อาร์เรย์ทั้งหมดลงในอาร์เรย์ java ได้อย่างไร ฉันหวังว่าใครบางคนสามารถช่วยฉันเกี่ยวกับสายรหัสที่ฉันขาดหายไปในรหัสของฉัน
ขอบคุณ