QJson使用

准备QJson  
      1. 将release文件夹里面的libQJSon.a放到\lib 目录中。如D:\Qt\Desktop\Qt\4.8.1\lib 
   2. 在release文件夹里面找到QJSon.dll文件,将它放到\bin目录中
   3. 创建一个名为QJSon的文件夹,然后将之前的代码目录中的所有头文件(*.h和*.hh)都拷贝到新创建的QJSon的文件夹中, 
   将QJson文件夹放到D:\Qt\Desktop\Qt\4.8.1\include目录中

 
 使用QJson
   1.设置pro文件 
        LIBS     += -lqjson1.
   2.引入头文件 

        #include

-----------------------------------------------------

   通过网址获取json

  

[cpp] view plain copy print ?
  1. QString QJsonParser::getHtml(QString url)  
  2. {  
  3.     QNetworkAccessManager *manager = new QNetworkAccessManager();  
  4.     QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));  
  5.     QByteArray responseData;  
  6.     QEventLoop eventLoop;  
  7.     QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));  
  8.     eventLoop.exec();       //block until finish  
  9.     responseData = reply->readAll();  
  10.     return QString(responseData);  
  11. }  
 将json数据进行解析

[cpp] view plain copy print ?
  1. void QJsonParser::parseAttribute()  
  2. {  
  3.     QJson::Parser parser;  
  4.     bool ok;  
  5.     QString query = getHtml( m_url );  
  6.     QVariantMap result = parser.parse(query.toAscii(), &ok).toMap();  
  7.     QVariantMap::iterator it = result.begin();  
  8.     if(ok)  
  9.     {  
  10.         for(; it != result.end(); ++it)  
  11.         {  
  12.             QVariantMap sub = it.value().toMap();  
  13.             QVariantMap::iterator subit = sub.begin();  
  14.             m_appEntity = new AppEntity;  
  15.             m_appEntity->m_appid = it.key()+"|"+subit.value().toString();  
  16.             ++subit;  
  17.             m_appEntity->m_appimg = subit.value().toString();  
  18.             ++subit;  
  19.             m_appEntity->m_appname = subit.value().toString();  
  20.             ++subit;  
  21.             m_appEntity->m_appurl = subit.value().toString();  
  22.             m_appEntityList.append(m_appEntity);  
  23.         }  
  24.   
  25.     }  
  26.     else  
  27.         qDebug()<<"error occuring";  
  28. }  

你可能感兴趣的:(JSON)