QT解析json数据-jsonObjectToMap

时间:2024-01-25 07:31:29

将Json对象转换成map

QVariantMap MainWindow:: jsonObjectToMap(const QJsonObject &jsonObject)
{
    QVariantMap map;
    for (const QString &key : jsonObject.keys()) {
        QJsonValue value = jsonObject[key];
        if (value.isString()) {
            map[key] = value.toString();
        } else if (value.isDouble()) {
            map[key] = value.toDouble();
        } else if (value.isBool()) {
            map[key] = value.toBool();
        } else if (value.isArray()) {
            QJsonArray array = value.toArray();
            QVariantList list;
            for (int i = 0; i< array.size(); ++i) {
                list.append(array[i].toVariant());
            }
            map[key] = list;
        } else if (value.isObject()) {
            map[key] = jsonObjectToMap(value.toObject());
        }
    }
    return map;
}