qt解析json嵌套

在 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 嵌套数据。如果您还有其他问题,请随时提问。

  •