首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用QtScript库解析Json数组例子

使用QtScript库解析Json数组例子

作者头像
ccf19881030
发布2019-05-26 15:34:32
1.6K0
发布2019-05-26 15:34:32
举报
文章被收录于专栏:ccf19881030的博客ccf19881030的博客

本文转载自:http://blog.sina.com.cn/s/blog_671732440100uwxh.html

使用qtscipt库解析json数组 首先在工程文件中加

QT += script

然后头文件加

#include <QtScript>

然后解析

QString str = "{\"name\":\"xiaotang\", \"age\":\"23\", \"chi\":[{\"a\":\"aa\", \"b\":\"bb\"}, {\"a\":\"aaa\", \"b\":\"bbb\"}]}";

QScriptEngine engine;

QScriptValue sc = engine.evaluate("value="+str);

qDebug() << sc.property("name").toString(); //解析字段

if(sc.property("chi").isArray()) //解析数组

{

QScriptValueIterator it(sc.property("chi"));

while (it.hasNext())

{

it.next();

if(!it.value().property("a").toString().isEmpty())

qDebug() << it.value().property("a").toString();

}

}

自己在Win7环境下安装了Qt4.8.5库qt-win-opensource-4.8.5-vs2008.exe和QtCreator编辑器qt-creator-windows-opensource-2.8.0.exe,采用VS2008替代MinGW作为编译器。如果想在VS2008下部署和开发QT应用的话,再从QT官网下载一个插件qt-vs-addin-1.1.11-opensource.exe就OK了,不过VS2008对QT库的函数自动提示支持等方面没有QTCreator做得好。以上的软件都可以从QT官网Download页http://qt-project.org/downloads下载。

QT代码如下:

#include <QtGui/QApplication>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptValue>
#include <QtScript/QScriptValueIterator>
#include <QtCore/QtDebug>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QString strJson = "{\"department\":\"computer science\", \"person number\":\"45\", \"student\":[{\"Name\":\"ccf\",\"Math\":\"95\", \"Chinese\":\"84\"}, {\"Name\":\"zhangsan\",\"Math\":\"75\", \"Chinese\":\"70\"}]}";
    QScriptEngine engine;
    QScriptValue sc =  engine.evaluate("value=" + strJson);
    qDebug() << "department:" << sc.property("department").toString();//解析字段
    if (sc.property("student").isArray())   //解析数组
    {
        QScriptValueIterator it(sc.property("student"));
        while(it.hasNext())
        {
            it.next();
            if (!it.value().property("Name").toString().isEmpty())
            {
                qDebug() << "Name :" << it.value().property("Name").toString();
                qDebug() << "Math :" << it.value().property("Math").toString();
                qDebug() << "Chinese :" << it.value().property("Chinese").toString();
            }
        }
    }

    return app.exec();
}

运行结果如下图所示:

主要用到QtScript库的三个类:QScriptEngine、QScriptValue、QScriptValueIterator类,具体使用方法可以查看QT帮助文档。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年10月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档