- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试解析以下 JSON 数据以将书的作者和标题存储到 ListView 中:
{
"kind": "books#volumes",
"totalItems": 921,
"items": [{
"kind": "books#volume",
"id": "QP7VvnhDOOsC",
"etag": "BQzzyT9zza0",
"selfLink": "https://www.googleapis.com/books/v1/volumes/QP7VvnhDOOsC",
"volumeInfo": {
"title": "Programming Android",
"authors": ["Zigurd Mednieks", "Laird Dornin", "G. Blake Meike", "Masumi Nakamura"],
"publisher": "\"O'Reilly Media, Inc.\"",
"publishedDate": "2012",
"description": "Presents instructions for creating Android applications for mobile devices using Java.",
"industryIdentifiers": [{
"type": "ISBN_13",
"identifier": "9781449316648"
}, {
"type": "ISBN_10",
"identifier": "1449316646"
}],
"readingModes": {
"text": false,
"image": true
},
"pageCount": 542,
"printType": "BOOK",
"categories": ["Computers"],
"averageRating": 3.5,
"ratingsCount": 6,
"maturityRating": "NOT_MATURE",
"allowAnonLogging": false,
"contentVersion": "preview-1.0.0",
"imageLinks": {
"smallThumbnail": "http://books.google.co.in/books/content?id=QP7VvnhDOOsC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api",
"thumbnail": "http://books.google.co.in/books/content?id=QP7VvnhDOOsC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"
},
"language": "en",
"previewLink": "http://books.google.co.in/books?id=QP7VvnhDOOsC&printsec=frontcover&dq=android+intitle&hl=&cd=1&source=gbs_api",
"infoLink": "http://books.google.co.in/books?id=QP7VvnhDOOsC&dq=android+intitle&hl=&source=gbs_api",
"canonicalVolumeLink": "http://books.google.co.in/books/about/Programming_Android.html?hl=&id=QP7VvnhDOOsC"
},
"saleInfo": {
"country": "IN",
"saleability": "NOT_FOR_SALE",
"isEbook": false
},
"accessInfo": {
"country": "IN",
"viewability": "PARTIAL",
"embeddable": true,
"publicDomain": false,
"textToSpeechPermission": "ALLOWED",
"epub": {
"isAvailable": false
},
"pdf": {
"isAvailable": false
},
"webReaderLink": "http://books.google.co.in/books/reader?id=QP7VvnhDOOsC&hl=&printsec=frontcover&output=reader&source=gbs_api",
"accessViewStatus": "SAMPLE",
"quoteSharingAllowed": false
},
"searchInfo": {
"textSnippet": "Presents instructions for creating Android applications for mobile devices using Java."
}
}, {
"kind": "books#volume",
"id": "S1QQ-mOaPd8C",
"etag": "hbStdCg087k",
"selfLink": "https://www.googleapis.com/books/v1/volumes/S1QQ-mOaPd8C",
"volumeInfo": {
"title": "Sams Teach Yourself Java in 21 Days (Covering Java 7 and Android)",
"authors": ["Rogers Cadenhead"],
以下是我用于 JSON 解析并将数据添加到 ArrayList 的方法。
public void DisplayList(String result) {
try {
JSONObject jsonobject = new JSONObject(result);
JSONArray jarray = jsonobject.getJSONArray("items");
for (int i = 0; i < jarray.length(); i++) {
JSONObject volumeInfo = jarray.getJSONObject(i).getJSONObject("volumeInfo");
String book_title = volumeInfo.getString("title");
JSONArray authors = volumeInfo.getJSONArray("authors");
for (int j = 0; j < authors.length(); j++) {
String book_author = authors.getString(i);
books.add(new Book(book_title, book_author));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
BooksAdapter adapter = new BooksAdapter(this, books);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(adapter);
//listView.setVisibility((adapter.isEmpty())?View.GONE:View.VISIBLE);
if (adapter.isEmpty()) {
defaultTextView.setText(no_response_message[2]);
//"No data to display, please enter correct keyword and search again."
}
}
当我使用函数 books.add() 时,它运行完美,但是当我尝试显示 ListView 时,我弹出 ListView 空消息。
可能是什么错误导致我无法将数据存储到 ArrayList 中。
最佳答案
首先JSON String没有正常关闭,应该是:
{"kind":"books#volumes","totalItems":921,"items":[{"kind":"books#volume","id":"QP7VvnhDOOsC","etag":"BQzzyT9zza0","selfLink":"https://www.googleapis.com/books/v1/volumes/QP7VvnhDOOsC","volumeInfo":{"title":"Programming Android","authors":["Zigurd Mednieks","Laird Dornin","G. Blake Meike","Masumi Nakamura"],"publisher":"\"O'Reilly Media, Inc.\"","publishedDate":"2012","description":"Presents instructions for creating Android applications for mobile devices using Java.","industryIdentifiers":[{"type":"ISBN_13","identifier":"9781449316648"},{"type":"ISBN_10","identifier":"1449316646"}],"readingModes":{"text":false,"image":true},"pageCount":542,"printType":"BOOK","categories":["Computers"],"averageRating":3.5,"ratingsCount":6,"maturityRating":"NOT_MATURE","allowAnonLogging":false,"contentVersion":"preview-1.0.0","imageLinks":{"smallThumbnail":"http://books.google.co.in/books/content?id=QP7VvnhDOOsC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api","thumbnail":"http://books.google.co.in/books/content?id=QP7VvnhDOOsC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"},"language":"en","previewLink":"http://books.google.co.in/books?id=QP7VvnhDOOsC&printsec=frontcover&dq=android+intitle&hl=&cd=1&source=gbs_api","infoLink":"http://books.google.co.in/books?id=QP7VvnhDOOsC&dq=android+intitle&hl=&source=gbs_api","canonicalVolumeLink":"http://books.google.co.in/books/about/Programming_Android.html?hl=&id=QP7VvnhDOOsC"},"saleInfo":{"country":"IN","saleability":"NOT_FOR_SALE","isEbook":false},"accessInfo":{"country":"IN","viewability":"PARTIAL","embeddable":true,"publicDomain":false,"textToSpeechPermission":"ALLOWED","epub":{"isAvailable":false},"pdf":{"isAvailable":false},"webReaderLink":"http://books.google.co.in/books/reader?id=QP7VvnhDOOsC&hl=&printsec=frontcover&output=reader&source=gbs_api","accessViewStatus":"SAMPLE","quoteSharingAllowed":false},"searchInfo":{"textSnippet":"Presents instructions for creating Android applications for mobile devices using Java."}},{"kind":"books#volume","id":"S1QQ-mOaPd8C","etag":"hbStdCg087k","selfLink":"https://www.googleapis.com/books/v1/volumes/S1QQ-mOaPd8C","volumeInfo":{"title":"Sams Teach Yourself Java in 21 Days (Covering Java 7 and Android)","authors":["Rogers Cadenhead"]}}]}
现在,你的解析函数正确地完成了它的工作,你只是在你的嵌套 for 中有一个小错误,它应该是 authors.getString(j)
而不是 authors.getString(i )
。 for 循环最终会是:
for (int i = 0; i < jarray.length(); i++) {
JSONObject volumeInfo = jarray.getJSONObject(i).getJSONObject("volumeInfo");
String book_title = volumeInfo.getString("title");
JSONArray authors = volumeInfo.getJSONArray("authors");
for (int j = 0; j < authors.length(); j++) {
String book_author = authors.getString(j);
books.add(new Book(book_title, book_author));
}
}
无论如何,您应该仍会在 ListView 中显示一些内容,所以我猜您的适配器代码或 Book 类中还有另一个错误。
关于android - 无法将 JSON 解析的数据加载到 ArrayList 中并显示在 ListView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38162554/
我通过 spring ioc 编写了一些 Rest 应用程序。但我无法解决这个问题。这是我的异常(exception): org.springframework.beans.factory.BeanC
我对 TestNG、Spring 框架等完全陌生,我正在尝试使用注释 @Value通过 @Configuration 访问配置文件注释。 我在这里想要实现的目标是让控制台从配置文件中写出“hi”,通过
为此工作了几个小时。我完全被难住了。 这是 CS113 的实验室。 如果用户在程序(二进制计算器)结束时选择继续,我们需要使用 goto 语句来到达程序的顶部。 但是,我们还需要释放所有分配的内存。
我正在尝试使用 ffmpeg 库构建一个小的 C 程序。但是我什至无法使用 avformat_open_input() 打开音频文件设置检查错误代码的函数后,我得到以下输出: Error code:
使用 Spring Initializer 创建一个简单的 Spring boot。我只在可用选项下选择 DevTools。 创建项目后,无需对其进行任何更改,即可正常运行程序。 现在,当我尝试在项目
所以我只是在 Mac OS X 中通过 brew 安装了 qt。但是它无法链接它。当我尝试运行 brew link qt 或 brew link --overwrite qt 我得到以下信息: ton
我在提交和 pull 时遇到了问题:在提交的 IDE 中,我看到: warning not all local changes may be shown due to an error: unable
我跑 man gcc | grep "-L" 我明白了 Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more inf
我有一段代码,旨在接收任何 URL 并将其从网络上撕下来。到目前为止,它运行良好,直到有人给了它这个 URL: http://www.aspensurgical.com/static/images/a
在过去的 5 个小时里,我一直在尝试在我的服务器上设置 WireGuard,但在完成所有设置后,我无法 ping IP 或解析域。 下面是服务器配置 [Interface] Address = 10.
我正在尝试在 GitLab 中 fork 我的一个私有(private)项目,但是当我按下 fork 按钮时,我会收到以下信息: No available namespaces to fork the
我这里遇到了一些问题。我是 node.js 和 Rest API 的新手,但我正在尝试自学。我制作了 REST API,使用 MongoDB 与我的数据库进行通信,我使用 Postman 来测试我的路
下面的代码在控制台中给出以下消息: Uncaught DOMException: Failed to execute 'appendChild' on 'Node': The new child el
我正在尝试调用一个新端点来显示数据,我意识到在上一组有效的数据中,它在数据周围用一对额外的“[]”括号进行控制台,我认为这就是问题是,而新端点不会以我使用数据的方式产生它! 这是 NgFor 失败的原
我正在尝试将我的 Symfony2 应用程序部署到我的 Azure Web 应用程序,但遇到了一些麻烦。 推送到远程时,我在终端中收到以下消息 remote: Updating branch 'mas
Minikube已启动并正在运行,没有任何错误,但是我无法 curl IP。我在这里遵循:https://docs.traefik.io/user-guide/kubernetes/,似乎没有提到关闭
每当我尝试docker组成任何项目时,都会出现以下错误。 我尝试过有和没有sudo 我在这台机器上只有这个问题。我可以在Mac和Amazon WorkSpace上运行相同的容器。 (myslabs)
我正在尝试 pip install stanza 并收到此消息: ERROR: No matching distribution found for torch>=1.3.0 (from stanza
DNS 解析看起来不错,但我无法 ping 我的服务。可能是什么原因? 来自集群中的另一个 Pod: $ ping backend PING backend.default.svc.cluster.l
我正在使用Hibernate 4 + Spring MVC 4当我开始 Apache Tomcat Server 8我收到此错误: Error creating bean with name 'wel
我是一名优秀的程序员,十分优秀!