Особенности QJsonValue

Автор: | 29 июля, 2019

QJsonValue

При работе с данным классом возникают ситуации неправильного присвоения типа при парсинге, в результате получается двойная конвертации при которой возникает ошибка и значение возвращается неправильное.   Для избежание данной ошибки можно воспользоваться методом QVariantMap который создаст map с значениями ключ = значения, из которого можно конвертировать в уже необходимое значение с указанием типа данных.

Фрагмент кода:

QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(val.toUtf8(),&error);
qDebug() << "Error: " << error.errorString() << error.offset << error.error;
   if (doc.isObject())
           {
            QJsonObject obj = doc.toObject();
            QVariantMap Map = obj.toVariantMap();

            QString  test1 =    Map["test1"].toString();
            QString  test2 =    Map["test2"].toString();
            QString  test3 =    Map["test3"].toString();
           }