在 Qt 中解析 JSON 嵌套可以使用 QJsonDocument 类库。这个类库提供了一些方便的方法来处理 JSON 格式的数据。您可以使用以下步骤解析 JSON 嵌套数据:
将 JSON 字符串转换成 QJsonDocument 对象。可以使用 QJsonDocument::fromJson() 方法将 JSON 字符串转换成 QJsonDocument 对象。例如:
QString jsonString = "{\"name\":\"John\",\"age\":30,\"cars\":[{\"name\":\"Ford\",\"models\":[\"Fiesta\",\"Focus\",\"Mustang\"]},{\"name\":\"BMW\",\"models\":[\"320\",\"X3\",\"X5\"]}]}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
获取 QJsonObject 对象。使用 QJsonDocument::object() 方法获取 QJsonObject 对象。例如:
QJsonObject jsonObj = jsonDoc.object();
解析 JSON 嵌套数据。可以使用 QJsonObject::value() 方法获取 QJsonValue 对象,然后根据数据类型使用相应的方法获取数据。如果获取的数据是 JSON 嵌套数据,可以递归处理。例如:
QString name = jsonObj["name"].toString(); // 获取字符串类型的数据
int age = jsonObj["age"].toInt(); // 获取整型数据
QJsonArray cars = jsonObj["cars"].toArray(); // 获取数组类型的数据
foreach (const QJsonValue &carValue, cars) { // 遍历数组
QJsonObject carObj = carValue.toObject(); // 获取数组中的对象
QString carName = carObj["name"].toString(); // 获取嵌套对象中的字符串类型的数据
QJsonArray models = carObj["models"].toArray(); // 获取嵌套对象中的数组类型的数据
foreach (const QJsonValue &modelValue, models) { // 遍历嵌套数组
QString modelName = modelValue.toString(); // 获取嵌套数组中的字符串类型的数据
希望这些步骤能够帮助您在 Qt 中解析 JSON 嵌套数据。如果您还有其他问题,请随时提问。