位置0处的意外字符(i)。 – 使用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文件格式正确用于解析,代码是可靠的,所以我不明白为什么这不起作用。 谢谢。
JSONParser#parse(String)
需要一个JSON字符串,而不是文件名。
您可以使用需要Reader
的重载方法,并提供包装FileInputStream
。
jsonObject = (JSONObject) parser.parse(new InputStreamReader(new FileInputStream("items.json")));