在 JSON 中,列表(或数组)结构可以用方括号 []
表示。JSON 数组可以包含多个值,这些值可以是字符串、数字、对象、数组、布尔值或 null
。下面是一些常见的 JSON 列表结构示例:
示例 1: 简单的字符串数组
{
"fruits": ["apple", "banana", "orange"]
}
示例 2: 数字数组
{
"scores": [90, 85, 88, 92]
}
示例 3: 对象数组
{
"employees": [
{
"name": "John Doe",
"age": 30,
"position": "Software Engineer"
},
{
"name": "Jane Smith",
"age": 25,
"position": "Designer"
}
]
}
示例 4: 混合类型数组
{
"data": [
{"id": 1, "value": true},
{"id": 2, "value": false},
{"id": 3, "value": null},
[1, 2, 3],
"stringValue"
]
}
如何解析 JSON 列表
如果你在 C++ 中使用 Qt,你可以使用 QJsonArray
和 QJsonObject
来解析和处理这些 JSON 数据。以下是一个简单的示例代码,展示了如何解析 JSON 列表:
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
// 假设这是你的 JSON 字符串
QString jsonString = R"({
"employees": [
{"name": "John Doe", "age": 30},
{"name": "Jane Smith", "age": 25}
]
})";
// 将 QString 转换为 QByteArray
QByteArray jsonData = jsonString.toUtf8();
// 创建 QJsonDocument
QJsonDocument doc = QJsonDocument::fromJson(jsonData);
// 获取根对象
QJsonObject rootObj = doc.object();
// 获取 employees 数组
QJsonArray employeesArray = rootObj["employees"].toArray();
for (const auto& value : employeesArray) {
QJsonObject employeeObj = value.toObject();
QString name = employeeObj["name"].toString();
int age = employeeObj["age"].toInt();
qDebug() << name << ":" << age;
}
return a.exec();
}
总结
- JSON 列表结构以方括号
[]
开始和结束,可以包含多种数据类型。 - 在 C++ 中,您可以使用 Qt 提供的类来解析和操作这些 JSON 数据。
内容由零声教学AI助手提供,问题来源于学员提问