Java 为什么JSON简单JSONArray会给我一个空指针异常?
我遵循这个教程,我的JSON对象非常相似,只是我有这种格式:Java 为什么JSON简单JSONArray会给我一个空指针异常?,java,json,nullpointerexception,arrays,json-simple,Java,Json,Nullpointerexception,Arrays,Json Simple,我遵循这个教程,我的JSON对象非常相似,只是我有这种格式: {"user":{ "SomeKeys":"SomeValues", "SomeList":["val1","val2"] } } 这是我的相关代码: Object obj = parser.parse(new FileReader("exampleJson.json")); JSONObject jsonObject = (JSONObject) obj; JSONObject user = (JSONO
{"user":{
"SomeKeys":"SomeValues",
"SomeList":["val1","val2"]
}
}
这是我的相关代码:
Object obj = parser.parse(new FileReader("exampleJson.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONObject user = (JSONObject) jsonObject.get("user");
JSONArray list = (JSONArray) user.get("SomeList");
然后,我的程序启动并从键等中获取值,或者它将从eclipse中获取NullPointerException
。为什么会这样
它应该将我的.json
文件解包到jsonObject
,将“user”键解包为一个jsonObjectuser
,然后将“SomeList”键解包为一个名为list
的JSONArray。除非它这样做,否则它必须尝试将val1
或val2
中的一个放入不存在的JSONArray的一部分,并且只指向null
的深渊。我做错了什么
如何修复我的程序?您的代码对我来说运行良好
public class App {
public static void main(final String[] args) throws FileNotFoundException, IOException, ParseException {
final Object obj = new JSONParser().parse(new FileReader("D:/a.json"));
final JSONObject jsonObject = (JSONObject) obj;
final JSONObject user = (JSONObject) jsonObject.get("user");
final JSONArray list = (JSONArray) user.get("SomeList");
System.out.println(list);
}
}
文件D:/exampleJson.json
{"user":{
"SomeKeys":"SomeValues",
"SomeList":["val1","val2"]
}
}
输出为
["val1","val2"]
使用完全相同的json文件:
{"user":{
"SomeKeys":"SomeValues",
"SomeList":["val1","val2"]
}
}
以下是我使用的代码(与导入一起使用,以确保我们拥有相同的代码):
以下是输出:
["val1","val2"]
我使用maven和m2e导入库。用于此测试的版本是
json-simple-1.1.jar
不是“SomeList”:[“val1”,“val2”]只是一个数组而不是JSONArray我尝试了你的代码,它对我来说非常适合。。。如果你想发布我尝试的全部代码,请告诉我。你尝试过使用调试器查找吗?@Joel没有,但我明天会在工作中查找。@aymeric这会很有帮助,也许这样我就能发现我们的代码有分歧。你为什么要将这些对象作为最终对象?
["val1","val2"]