如何使用简单的JSON库将JSON文件读入Java

我想JSON使用JSON简单库使用Java 读取此文件。

我的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();

}

}

}

但是我得到以下异常:

线程“主”中的异常java.lang.ClassCastException:org.json.simple.JSONArray无法转换为javaapplication1.JavaApplication1.main(JavaApplication1.java:24)上的org.json.simple.JSONObject

有人可以告诉我我做错了吗?整个文件是一个数组,并且文件的整个数组中包含对象和另一个数组(汽车)。但是我不知道如何将整个数组解析为java数组。我希望有人可以帮助我解决我的代码中缺少的代码行。

回答:

如你所说,JSON Blob的最外层是一个数组。因此,你的解析器将返回JSONArray。然后可以JSONObject从数组中获取s …

  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) person.get("cars");

for (Object c : cars)

{

System.out.println(c+"");

}

}

以上是 如何使用简单的JSON库将JSON文件读入Java 的全部内容, 来源链接: utcz.com/qa/403295.html

回到顶部