Ожидал сразу же услышать критику, ведь
C++ (Qt)
return obj[elem].toString();
По сути повторяет проход по JSON объекту.
Не понимаю почему не работает вариант:
C++ (Qt)
foreach (const auto & elem, obj)
{
if (key.compare( elem.key(), Qt::CaseInsensitive) == 0)
if(elem.value().isString())
return elem.value().toString();
else
return QString::number(elem.value().toInt());
}
Этот код, на мой взгляд, должен быть эквивалентен:
C++ (Qt)
foreach (const QJsonObject::iterator & elem, obj)
{
if (key.compare( elem.key(), Qt::CaseInsensitive) == 0)
if(elem.value().isString())
return elem.value().toString();
else
return QString::number(elem.value().toInt());
}
но это не так:
C++ (Qt)
updater.cpp:1586: error: no viable conversion from 'QJsonValue' to 'const QJsonObject::iterator'
foreach (const QJsonObject::iterator & elem, obj)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
хотя мне кажется что elem.value() как раз и должен вернуть QJsonValue
Где туплю?