首先构建一个json对象:
QJsonArray versionArray;
versionArray.append(4.8);
versionArray.append(5.2);
versionArray.append(5.7);
QJsonObject pageObject;
pageObject.insert("Home", "https://www.qt.io/");
pageObject.insert("Download", "https://www.qt.io/download/");
pageObject.insert("Developers", "https://www.qt.io/developers/");
QJsonObject json;
json.insert("Name", "Qt");
json.insert("Company", "Digia");
json.insert("From", 1991);
json.insert("Version", QJsonValue(versionArray));
json.insert("Page", QJsonValue(pageObject));
对这个json对象中的部分数据做修改,如果通过toArray或toObject转换后修改,那么修改后的值不会影响原来的对象,如果要直接修改原对象,那么可以用QJsonValueRef 。
1、Page的值是一个object,改成其他类型:
QJsonValueRef RefPage = json.find("Page").value();
RefPage = QJsonValue("8888");
QJsonValueRef 获取的是json对象中Page值的引用
结果:
2、修改数组Version中的值:
QJsonValueRef RefVersion = json.find("Version").value();
QJsonArray array = RefVersion.toArray();
QJsonValueRef ElementOneValueRef = array[0];
ElementOneValueRef = QJsonValue("44.88");
RefVersion = array;
RefVersion是对象中Version数组的引用
ElementOneValueRef是array数组中的第一个值的引用
结果:
QJsonValueRef RefPage = json.find("Page").value();
QJsonObject obj = RefPage.toObject();
obj["Home"] = "www.baidu.com";
RefPage = obj;
完整代码:
QJsonArray versionArray;
versionArray.append(4.8);
versionArray.append(5.2);
versionArray.append(5.7);
QJsonObject pageObject;
pageObject.insert("Home", "https://www.qt.io/");
pageObject.insert("Download", "https://www.qt.io/download/");
pageObject.insert("Developers", "https://www.qt.io/developers/");
QJsonObject json;
json.insert("Name", "Qt");
json.insert("Company", "Digia");
json.insert("From", 1991);
json.insert("Version", QJsonValue(versionArray));
json.insert("Page", QJsonValue(pageObject));
qDebug() << json;
// QJsonValueRef RefPage = json.find("Page").value();
// RefPage = QJsonValue("8888");
QJsonValueRef RefPage = json.find("Page").value();
QJsonObject obj = RefPage.toObject();
obj["Home"] = "www.baidu.com";
RefPage = obj;
qDebug() << json;
// QJsonValueRef RefVersion = json.find("Version").value();
// QJsonArray array = RefVersion.toArray();
// QJsonValueRef ElementOneValueRef = array[0];
// ElementOneValueRef = QJsonValue("44.88");
// RefVersion = array;
// qDebug() << json;