json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单
1、什么是json?
A:json就是个<key,value>字符串
①一个json对象
{"name":"xupeidong","age":"18"}
②一个json数组里面嵌套json对象
[{"price": "1", "name": "1", "id": "1"}, {"price": "2", "name": "2", "id": "2"}, {"price": "3", "name": "3", "id": "3"}]
2、QT里面如何使用json
#include <QJsonDocument> ??//解析类,用于将json转换为QByteArrar,或从QByteArray解析出json#include <QJsonArray> ??// 封装json数组:["1","2","3"]#include <QJsonObject> ?// 封装json对象:{"name": "111","pass": 222}#include <QJsonParseError> //错误类
①json对象
组装:
QJsonObject json;json.insert("name", "111");json.insert("pass", 222);QJsonDocument doc;doc.setObject(json);QByteArray byte = document.toJson(QJsonDocument::Compact);
解析:
QJsonParseError error;QJsonDocument doc = QJsonDocument::fromJson(byte, &error); if(error.error == QJsonParseError::NoError) { ?????if(doc.isObject()) ?????{ ?????????QJsonObject obj = doc.object(); ????????if(obj.contains("name")) ? { QJsonValue value = obj.take("name"); qDebug() << value.toString(); } ???}}
②json数组
组装:
格式:"[\"000\",\"111\"]"QJsonArray json;json.insert(0, "000");json.insert(1, "111");QJsonDocument doc;doc.setArray(json);QByteArray byte = doc.toJson(QJsonDocument::Compact);
还可以插入json对象:格式:"[{\"0\":\"000\"},{\"1\":\"111\"}]"QJsonArray json;QJsonObject obj;obj.insert("0","000");json.insert(0, obj);QJsonObject obj1;obj1.insert("1","111");json.insert(1, obj1);QJsonDocument doc;doc.setArray(json);QByteArray byte = doc.toJson(QJsonDocument::Compact);
解析:
QJsonParseError error;QJsonDocument doc = QJsonDocument::fromJson(byte, &error); if(error.error == QJsonParseError::NoError) { ?????if(doc.isArray()) ?????{ ?????????QJsonArray array = doc.array(); ????????for(int i=0; i<array.size();i++) ???????{ ???????????QJsonValue value = array.at(i); ???????} ???}}
QT解析和组装json
原文地址:https://www.cnblogs.com/xupeidong/p/9401235.html