豆瓣图书API有XML和JSON两种,以CSAPP 3rd的API为例分别如下:
XML:http://api.douban.com/book/subject/isbn/9780134092669
JSON:https://api.douban.com/v2/book/isbn/:9780134092669
程序中使用的是JSON格式。
首先要解析已保存好的.json文件,有以下步骤:
1.用QFile类读取.json文件,涉及函数QFile::open()和QFile::readAll(),读取完毕后用QFile::close()关闭文件。
2.将用QFile::readAll()读取到的数据转换为QJsonDocument类,涉及函数QJsonDocument::fromJson()。
3.将QJsonDocument类转换为QJsonObject类,涉及函数QJsonDocument::object()。
4.对QJsonObject类进行操作,例如读取图书title:
QString title = jsonObject["title"].toString();
。
API中的image项给出了封面图片的地址。下载图片要用到网络连接的三个类:QNetworkAccessManager、QNetworkReply和QNetworkRequest。步骤如下:
1.设置url,涉及函数QNetworkRequest::setUrl()。
2.QNetworkAccessManager::get()。
3.用信号槽QObject::connect()完成图片下载。网络连接的操作似乎必须要用信号槽实现。
main()函数:
int main(int argc, char *argv[])
{
QApplication a