Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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中的空指针访问消息_Java_Json_Jakarta Ee_Nullpointerexception - Fatal编程技术网

Java中的空指针访问消息

Java中的空指针访问消息,java,json,jakarta-ee,nullpointerexception,Java,Json,Jakarta Ee,Nullpointerexception,我创建了一个解析JSON对象并返回字符串数组的方法 private String[] getAttributesfromJson(JSONObject attacheddataattributejson) { String returnjsonArray[] = null; JSONArray subcatarray = attacheddataattributejson.optJSONArray("subcatAttributes"); if(subcatarray!=

我创建了一个解析JSON对象并返回字符串数组的方法

private String[] getAttributesfromJson(JSONObject attacheddataattributejson) {
    String returnjsonArray[] = null;
    JSONArray subcatarray = attacheddataattributejson.optJSONArray("subcatAttributes");
    if(subcatarray!=null){
        for(int i=0;i<subcatarray.length();i++)
        {
            returnjsonArray[i]=subcatarray.getJSONObject(i).optString("name");
        }   
    }
    return returnjsonArray;
}
私有字符串[]getAttributesfromJson(JSONObject AttachedataAttributeJSON){
字符串returnjsonArray[]=null;
JSONArray subcatarray=attachedataattributejson.optJSONArray(“子属性”);
if(子目录!=null){

对于(int i=0;i您将
returnjsonArray[]
初始化为
null
并尝试在未初始化的情况下访问它

Java对
null
引用没有任何魔力;而且,数组在Java中不是动态分配的。如果需要,请使用
列表
(也应该初始化),然后返回此列表的
.toArray()

请参见此行

String returnjsonArray[] = null;
你忘了初始化它


如果你以前没有装满篮子,你就不会从篮子里得到任何东西。

你可以使用以下代码


私有字符串[]getAttributesfromJson(JSONObject AttachedataAttributeJSON)抛出JSONException{
List returnjsonArray=new ArrayList();
JSONArray subcatarray=attachedataattributejson.optJSONArray(“子属性”);
if(子目录!=null){
对于(int i=0;i
private String[] getAttributesfromJson(JSONObject attacheddataattributejson) throws JSONException {
        List<String> returnjsonArray = new ArrayList<String>();
        JSONArray subcatarray = attacheddataattributejson.optJSONArray("subcatAttributes");
        if (subcatarray != null) {
            for (int i = 0; i < subcatarray.length(); i++) {
                returnjsonArray.add(subcatarray.getJSONObject(i).optString("name"));
            }
        }
    return (String[]) returnjsonArray.toArray();
}