Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么JSON简单JSONArray会给我一个空指针异常?_Java_Json_Nullpointerexception_Arrays_Json Simple - Fatal编程技术网

Java 为什么JSON简单JSONArray会给我一个空指针异常?

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

我遵循这个教程,我的JSON对象非常相似,只是我有这种格式:

{"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”键解包为一个jsonObject
user
,然后将“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"]