我创建了一个解析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;
}
但是我的日食在returnjsonArray [i]上显示一个警告,这个pos只能为null。但是我也对subcatarray进行了空检查。请帮忙。
答案 0 :(得分:1)
您将returnjsonArray[]
初始化为null
并尝试访问它而不必初始化它。
Java对null
引用没有任何魔力;更重要的是,数组不在Java中动态分配。如果您需要,请使用List
(您也应该初始化),并返回此列表的.toArray()
。
答案 1 :(得分:1)
见这一行
String returnjsonArray[] = null;
你忘了初始化它。
如果你之前没有填充,你就不会从篮子里得到任何东西。
答案 2 :(得分:0)
您可以使用以下代码。
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();
}