Java 在JSONObject中解析JSONArray时出现问题

Java 在JSONObject中解析JSONArray时出现问题,java,android,json,Java,Android,Json,出于某种原因,我可以读取整个数组,但当我尝试选择一个段时,它不允许我看到数组中的段,数组长度等于1,就像它被压缩成一个元素一样。这是我的代码: 试试看{ objectobj=parser.parse(结果); JSONObject JSONObject=(JSONObject)对象; JSONArray items=(JSONArray)jsonObject.get(“items”); Log.d(标记“items-length:+items.size());//由于某些原因不超过1 字符串名

出于某种原因,我可以读取整个数组,但当我尝试选择一个段时,它不允许我看到数组中的段,数组长度等于1,就像它被压缩成一个元素一样。这是我的代码:

试试看{
objectobj=parser.parse(结果);
JSONObject JSONObject=(JSONObject)对象;
JSONArray items=(JSONArray)jsonObject.get(“items”);
Log.d(标记“items-length:+items.size());//由于某些原因不超过1
字符串名称=”;
//下面应该只返回书名
对于(int i=0;i
结果=名称


这真的很简单…更改:

https://www.googleapis.com/books/v1/volumes?q=lTrump&maxResults=1
致:


您将获得不止一个项目

我刚刚调用了您代码中的url
https://www.googleapis.com/books/v1/volumes?q=lTrump&maxResults=1
并且“items”数组的长度仅为1。是否尝试从url中删除&maxResults=1


因此,请改用此url
https://www.googleapis.com/books/v1/volumes?q=lTrump

实际上你们都错过了,但这是我问题的答案

                Object obj = parser.parse(result);
                JSONObject jsonObject = (JSONObject) obj;
                JSONArray items = (JSONArray) jsonObject.get("items");
                JSONObject first = (JSONObject) items.get(0);
                JSONObject volumeInfo = (JSONObject) first.get("volumeInfo");
                String name = (String) volumeInfo.get("title");

基本上,我没有得到正确的JSON层次结构,我调用了一个不存在的元素

堆栈跟踪是什么?当你遇到像这样的问题时,尝试使用或类似的方法。然后你可以检查问题是在你的JSON响应中还是在代码本身中。我调用了你的Api端点,我只得到了一项……这是你的问题
https://www.googleapis.com/books/v1/volumes?q=lTrump&maxResults=[someNumber]
                Object obj = parser.parse(result);
                JSONObject jsonObject = (JSONObject) obj;
                JSONArray items = (JSONArray) jsonObject.get("items");
                JSONObject first = (JSONObject) items.get(0);
                JSONObject volumeInfo = (JSONObject) first.get("volumeInfo");
                String name = (String) volumeInfo.get("title");