【发布时间】:2014-07-22 12:30:45
【问题描述】:
实际上,下面的示例是 StackOverFlow 中某处的答案。 我尝试使用下面的代码,但是,
JSONArray a = (JSONArray) parser.parse(new FileReader("c:\\exer4-courses.json"));
由于以下异常,上述行不起作用。
java.lang.ClassCastException: org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray
有什么方法可以读取我的 JSON 文件吗?
JSON 文件:
[
{
"name": "John",
"city": "Berlin",
"cars": [
"audi",
"bmw"
],
"job": "Teacher"
},
{
"name": "Mark",
"city": "Oslo",
"cars": [
"VW",
"Toyata"
],
"job": "Doctor"
}
]
Java 代码:
JSONArray a = (JSONArray) parser.parse(new FileReader("c:\\exer4-courses.json"));
for (Object o : a) {
JSONObject person = (JSONObject) o;
String name = (String) person.get("name");
System.out.println(name);
String city = (String) person.get("city");
System.out.println(city);
String job = (String) person.get("job");
System.out.println(job);
JSONArray cars = (JSONArray) jsonObject.get("cars");
for (Object c : cars) {
System.out.println(c + "");
}
}
【问题讨论】:
-
文件中说没有数组,只有一个简单的json对象。
-
先去json.org学习一下JSON语法。只需 5-10 分钟。
-
(就是说文件中的数据不是数组。也就是说,你上面显示的不是文件中的数据。)