qt解析json(使用第三方库

我使用的是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(); } 

你可能感兴趣的:(qt解析json(使用第三方库)