如何使用简单的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








