类 功能
QJsonArray 封装 JSON数组
QJsonDocument 读写 JSON 文档
QJsonObject 封装 JSON 对象
QJsonObject::iterator 用于遍历QJsonObject的 STL 风格的非 const 遍历器
QJsonParseError 报告 JSON 处理过程中出现的错误
QJsonValue 封装 JSON 值
qt字符串转json
#include <QJsonDocument>#include <QJsonArray>#include <QJsonObject>QJsonDocument qJsonDocumentObj = QJsonDocument::fromJson(baRevDataParam);QJsonObject qJsonObjs=qJsonDocumentObj.object();QStringList listKeys =qJsonObjs.keys();for (QString indexKey:listKeys) {QJsonValue indexValue = qJsonObjs.value(indexKey);qDebug() << "" << indexKey << " " << indexValue;}
json数据的增删改查
取值、 查找、遍历、删除
QJsonObject提供了容器类的基本都有的常规方法,如下:
QJsonObject object({ { "name", "XiaoMing" }, { "age", 15 } });//是否包含qDebug() << object.contains("name");// 取值qDebug() << object.value("name");qDebug() << object["name"];// 查找qDebug() << object.contains("name");auto iter = object.find("name");// 遍历for (auto iter = object.begin(); iter != object.end(); iter++)qDebug() << iter.key() << iter.value();// 删除object.remove("name");
例子:
QByteArray jsonData = "[{"id":"11", "name":"aaa"},""{"id":"22", "name":"bbb"},""{"id":"33", "name":"ccc"}]";QJsonParseError jsonError;QJsonDocument jsonDoucment = QJsonDocument::fromJson(jsonData, &jsonError);if(jsonError.error == QJsonParseError::NoError){if(!(jsonDoucment.isNull()||jsonDoucment.isEmpty())){QVariantList dataList=jsonDoucment.toVariant().toList();foreach (QVariant data, dataList) {QVariantMap dataMap=data.toMap();qDebug()<<"id:"<<dataMap["id"].toString()<<"name:"<<dataMap["name"].toString();}}}else{//检查错误类型qDebug()<<"jsonError:"<<jsonError.errorString();}
