位置0处的意外字符(i)。 - 使用Java解析JSON

时间:2014-04-17 22:59:22

标签: java json

{
    "0" : {
        "upc" : "00000000005",
        "name" : "Weighable Soup Cups",
        "location" : "5310ed21d5dc7aaa0343a932"
    },
    "1" : {
        "upc" : "00000000011",
        "name" : "OF Reuseable Bags",
        "location" : "5310ed21d5dc7aaa0343a932"
    }
}

这是我试图解析的JSON片段。这是我正在使用的代码:

public class Main {

    public static void main(String[] args) {

        JSONParser parser = new JSONParser();


        JSONObject jsonObject = null;
        try {
            jsonObject = (JSONObject) parser.parse("items.json");
        } catch (ParseException e) {
            e.printStackTrace();
        }

        JSONObject structure = (JSONObject) jsonObject.get("0");
        System.out.println(structure.get("upc"));



    }

}

由于某种原因,在位置0错误时抛出意外字符(i)。据我所知,JSON文件的格式正确,可以解析并且代码很可靠,所以我不明白为什么这不起作用。感谢。

1 个答案:

答案 0 :(得分:7)

JSONParser#parse(String)需要一个JSON字符串,而不是文件名。

您可以使用期望Reader的重载方法,并提供包裹InputStreamReader的{​​{1}}。

FileInputStream