关于QT5使用QtScript解析QJsonArray数组的问题

首先得在pro文件中加入QT+=script

然后导入相应的头文件

1
2
3
4
include <QStringList>
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptValue>
#include <QtScript/QScriptValueIterator>

 

接下来便可使用相应的API了

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
QString strJson =  "{ \"student\":[{\"Name\":\"ccf\",\"Math\":\"95\", \"Chinese\":\"84\"}, {\"Name\":\"zhangsan\",\"Math\":\"75\", \"Chinese\":\"70\"}]}" ;
         QScriptEngine engine;
         QScriptValue sc =  engine.evaluate( "value="  + strResult);
         if  (sc.property( "dan" ).isArray())    //解析json数组
         {
             QScriptValueIterator it(sc.property( "dan" ));
             while (it.hasNext())
             {
                 it.next();
                 if  (!it.value().property( "type" ).toString().isEmpty())
                 {
                     qDebug() <<  "type :"  << it.value().property( "type" ).toString();
                     qDebug() <<  "data :"  << it.value().property( "data" ).toString();
                     receMsg = it.value().property( "data" ).toString();
                     qDebug() <<  "user :"  << it.value().property( "use" ).toString();
 
                     QDesktopWidget* desktopWidget;                                     //获取桌面设备
                     QRect screenRect;
                     desktopWidget = QApplication::desktop();                           //获取桌面设备
                     screenRect = desktopWidget->screenGeometry();                      //获取桌面大小的矩形
                     Danmu * danmu =  new  Danmu(NULL,receMsg, "Red" ,1,screenRect);
                     qDebug()<< "x" <<danmu->getPosX()<< " y" <<danmu->getPosY();
 
                 }
             }
         }

猜你喜欢

转载自blog.csdn.net/u014746838/article/details/79429903
今日推荐