在解析完对象数组后,你可以遍历数组中的每个对象,并在每个对象上添加新的字段。
下面是一个示例代码:
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
int main()
{
// 原有的 JSON 数据(包含对象数组)
QByteArray jsonByteArray = R"(
{
"students": [
{
"name": "John",
"age": 20
},
{
"name": "Jane",
"age": 22
}
]
}
)";
// 解析 JSON 数据为 QJsonObject
QJsonParseError parseError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonByteArray, &parseError);
if (parseError.error != QJsonParseError::NoError || !jsonDoc.isObject())
{
qDebug() << "无法解析 JSON 数据";
return 1;
}
QJsonObject jsonObj = jsonDoc.object();
// 获取学生列表的 JSON 数组
QJsonArray studentsArray = jsonObj["students"].toArray();
// 遍历每个学生对象并添加新字段
for (int i = 0; i < studentsArray.size(); ++i)
{
QJsonObject studentObj = studentsArray[i].toObject();
// 在每个学生对象上补充字段
studentObj["city"] = "New York";
studentsArray[i] = studentObj;
}
// 更新原始 JSON 对象中的学生列表数组
jsonObj["students"] = studentsArray;
// 将修改后的 JSON 对象转换回 JSON 数据
jsonDoc.setObject(jsonObj);
QByteArray updatedJsonData = jsonDoc.toJson(QJsonDocument::Indented);
qDebug() << "更新后的 JSON 数据:\n" << updatedJsonData;
return 0;
}
这个示例代码会解析原有的JSON数据,并在每个学生对象上添加一个名为”city”的新字段。然后,它将更新后的学生列表数组重新赋值给原始JSON对象中的”students”字段,并最终输出更新后的JSON数据。
希望这个示例对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问