我正在尝试读取一个json文件,但编译器说,Parser无法解析JAVA

时间:2016-11-14 19:23:42

标签: java json json-simple

我已经下载并在eclipse中为我的项目添加了json-simple.jar。唯一的问题是Parser,Eclipse说"parser cannot be resolved"。虽然JSONObjectJSONArray工作得很好。

我在尝试阅读文件时遇到错误:

JSONParser parser = new JSONParser();
JSONArray jArray = (JSONArray) parser.parse(new FileReader("comments.json"));

导入如下:

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

我刚刚开始使用json,所以我可能会遗漏一些东西。

comments.json文件的格式为:

{
"postId": 1,
"id": 1,
"name": "id labore ex et quam laborum",
"email": "Eliseo@gardner.biz",
"body": "laudantium enim quasi est"
}

2 个答案:

答案 0 :(得分:0)

我没有测试过,但由于你的json文件只有一个对象,我更喜欢使用JSONObject代替JSONArray

    Object obj = parser.parse(new FileReader("comments.json"));
    JSONObject jsonObject = (JSONObject) obj;
    String name = (String) jsonObject.get("name");
    System.out.println(name);

答案 1 :(得分:0)

我个人更喜欢Jackson库,所以我不熟悉JSON.simple。您是否考虑为解析器创建ContainerFactory()http://juliusdavies.ca/json-simple-1.1.1-javadocs/org/json/simple/parser/ContainerFactory.html

此外,您的"comment.json"只是JSONObject(),因此无需额外支付JSONArray()

也许试一试:

ContainerFactory cf = new ContainerFactory();
Map jsonContainer = cf.createObjectContainer(); 

JSONParser parser = new JSONParser();
JSONObject jObj = (JSONObject) parser.parse(new FileReader("comments.json"), jsonContainer);