Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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/3/android/213.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/7/wcf/4.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 JSONExeption:项没有值_Java_Android_Json_Arrays_Jsonobject - Fatal编程技术网

Java JSONExeption:项没有值

Java JSONExeption:项没有值,java,android,json,arrays,jsonobject,Java,Android,Json,Arrays,Jsonobject,我正在尝试解析Android应用程序中的一些JSON。返回一个JSONObject,在该JSONObject中有一个JSONArray。但我的问题是:在某种程度上,Android无法识别JSONObject中的数组 这是我的Android代码: JSONParser jp = new JSONParser(); JSONObject json = jp.getList(id,code); Log.v("json: ", json.getString("tag")); JSONArray j

我正在尝试解析Android应用程序中的一些JSON。返回一个JSONObject,在该JSONObject中有一个JSONArray。但我的问题是:在某种程度上,Android无法识别JSONObject中的数组

这是我的Android代码:

JSONParser jp = new JSONParser();   
JSONObject json = jp.getList(id,code);
Log.v("json: ", json.getString("tag"));
JSONArray jarr = json.getJSONArray("items");
for (int i = 0; i < jarr.length(); i++) {
 JSONObject jobj = jarr.getJSONObject(i);  
 list.add(jobj.getString("title"));
}
adapter.notifyDataSetChanged();
最后,我的日志:

04-05 22:23:39.082: D/Http Response:(31845): org.apache.http.client.methods.HttpPost@65684f78
04-05 22:23:39.082: V/json:(31845): getlist
04-05 22:23:39.082: W/System.err(31845): org.json.JSONException: No value for items
04-05 22:23:39.092: W/System.err(31845):    at org.json.JSONObject.get(JSONObject.java:355)
04-05 22:23:39.092: W/System.err(31845):    at org.json.JSONObject.getJSONArray(JSONObject.java:549)
04-05 22:23:39.092: W/System.err(31845):    at nl.wacsite.wacsitebeta.MainFragmentTab$getListAsyncTask.doInBackground(MainFragmentTab.java:62)
04-05 22:23:39.092: W/System.err(31845):    at nl.wacsite.wacsitebeta.MainFragmentTab$getListAsyncTask.doInBackground(MainFragmentTab.java:1)
04-05 22:23:39.092: W/System.err(31845):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-05 22:23:39.092: W/System.err(31845):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-05 22:23:39.092: W/System.err(31845):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-05 22:23:39.092: W/System.err(31845):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-05 22:23:39.092: W/System.err(31845):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-05 22:23:39.092: W/System.err(31845):    at java.lang.Thread.run(Thread.java:811)
我的问题是:我做错了什么?
提前谢谢

这可能发生在JSONObject的getter函数中。这意味着您正试图使用实际不存在的id从JSONObject检索值。在检索任何值之前,使用hasname检查JSONObject中是否存在该值。你可以出去看看更多的细节


希望这有帮助。

jarr.length包含空值,您确定该数组中没有空值吗?你能试着打印该数组的长度吗?试着调试它,并在json初始化之后放置一个断点。您应该能够查看它的内容。如果看起来里面没有条目,那么原始json字符串或解析方法就有问题。
04-05 22:23:39.082: D/Http Response:(31845): org.apache.http.client.methods.HttpPost@65684f78
04-05 22:23:39.082: V/json:(31845): getlist
04-05 22:23:39.082: W/System.err(31845): org.json.JSONException: No value for items
04-05 22:23:39.092: W/System.err(31845):    at org.json.JSONObject.get(JSONObject.java:355)
04-05 22:23:39.092: W/System.err(31845):    at org.json.JSONObject.getJSONArray(JSONObject.java:549)
04-05 22:23:39.092: W/System.err(31845):    at nl.wacsite.wacsitebeta.MainFragmentTab$getListAsyncTask.doInBackground(MainFragmentTab.java:62)
04-05 22:23:39.092: W/System.err(31845):    at nl.wacsite.wacsitebeta.MainFragmentTab$getListAsyncTask.doInBackground(MainFragmentTab.java:1)
04-05 22:23:39.092: W/System.err(31845):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-05 22:23:39.092: W/System.err(31845):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-05 22:23:39.092: W/System.err(31845):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-05 22:23:39.092: W/System.err(31845):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-05 22:23:39.092: W/System.err(31845):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-05 22:23:39.092: W/System.err(31845):    at java.lang.Thread.run(Thread.java:811)