qt解析json(使用第三方库

来源:互联网 发布:淘宝动漫周边店成本 编辑:程序博客网 时间:2024/05/01 03:40

我使用的是Qjson库 是qt指定用的开源库 不错哈

1.先编译库,生成.a文件(编译用)和.dll(运行用)

2.将.a文件放到qt根目录的lib目录下,将库里的include目录拷贝到qt根目录的QtJson(新建的)目录下面

3.在你的程序的pro文件中指定

INCLUDEPATH += . PATH(qt根目录)/include/QtJson

LIBS += -L PATH(qt根目录)/lib -lqjson
4.在你的程序中加上头文件

#include <parser.h>

#include <serializer.h>

5.创建类对象

QJson::Parser parser;

6.将QVariantList转换为Json数据

QVariantList list;

QJson::Serializer serializer;

QByteArray array = serializer.serialize(list);
7.实例#include <QApplication>#include <QVariant>#include <QDebug>#include <parser.h>int main(int argc, char *argv[]){QApplication app(argc, argv);QJson::Parser parser;bool ok;QString json = "{\"encoding\":\"UTF-8\", \"plug-ins\":[\"python\",\"c++\",\"ruby\"], \"indent\":{ \"length\":3, \"use_space\":true }}";QVariantMap result = parser.parse(json.toAscii(), &ok).toMap();if (!ok){qDebug("An error occurred during parsing");return 0;}qDebug() << "encoding:" << result["encoding"].toString();qDebug() << "plugins:";foreach (QVariant plugin, result["plug-ins"].toList())qDebug() << "\t-" << plugin.toString();QVariantMap nestedMap = result["indent"].toMap();qDebug() << "length:" << nestedMap["length"].toInt();qDebug() << "use_space:" << nestedMap["use_space"].toBool();return app.exec();}