Qt 创建一个json数组对象写入文档并从文档读出q
void createJsonArray()
{
// 创建一个JSON数组
QJsonArray jsonArray;
// 创建一些JSON对象并添加到数组中
for (int i = 0; i < 3; ++i) {
QJsonObject jsonObject;
jsonObject["key" + QString::number(i)] = "value" + QString::number(i);
jsonArray.append(jsonObject);
}
// 将JSON数组转换为JSON文档并输出
QJsonDocument jsonDoc(jsonArray);
// QByteArray就是字符串类型
QByteArray jsona = jsonDoc.toJson();
// 把得到的json字符串写到磁盘文件中
QString saveDefectPath = "D://result.json";
qDebug() << __FUNCTION__ << __LINE__ << saveDefectPath;
QFile file(saveDefectPath);
file.open(QFile::WriteOnly);
file.write(jsona);
file.close();
QFile open(saveDefectPath);
file.open(QFile::ReadOnly);
QByteArray all = file.readAll();
// 把读出来的字符串转化成json的文档对象
QJsonDocument doc = QJsonDocument::fromJson(all);
if (doc.isArray()) {
QJsonArray obj = doc.array();
qDebug() << __FILE__ << __FUNCTION__ << __LINE__;
// 循环获取数组中的每个元素
for (int num = 0; num < obj.size(); ++num) {
// 将数组中的每个元素转换成json obj
QJsonObject subObj = obj.at(num).toObject();
QStringList subKeys = subObj.keys();
for (int var = 0; var < subKeys.size(); ++var) {
QString key = subKeys.at(var);
QJsonValue value = subObj.value(key);
qDebug() << __FILE__ << __FUNCTION__ << __LINE__ << key << ":" << value.toString();
}
}
}
}