QVariantMap Json Парсинг в QT - PullRequest
       33

QVariantMap Json Парсинг в QT

3 голосов
/ 15 сентября 2010

Я использую следующий код для разбора:

QJson::Parser parser;
bool ok;
QVariantMap result=parser.parse (cityReply->readAll(),&ok).toMap();
if (!ok)
{
    qFatal("An error occurred during parsing");
    exit (1);
}

foreach (QVariant city, result.toList())
{
    QVariantMap names = city.toMap();
    qDebug() << "\t-" << names["name"].toString();
}

Моя строка json [{"id":2,"name":"AAA"},{"id":1,"name":"BBB"}].

Я получил следующую ошибку:

У класса QVariantMap нет члена с именем toList.

возможно ли преобразовать QMap в QList?

1 Ответ

3 голосов
/ 15 сентября 2010

result содержит сериализованный массив как QVariant. Вам нужно извлечь его перед вызовом функции toList(). Поскольку массив не указан в строке Json, вы можете получить к нему доступ, получив первый QVariant на карте и выполнив то, что вы написали в вопросе.

...