QT. JSON. QJsonDocument. Конвертация double в scientific по умолчанию. Как избежать

Занимаюсь получением текущей погоды с API OpenWeather (https://api.openweathermap.org/).

Делаю реквест, получаю строку и пытаюсь её распарсить как JSON используя QJsonDocument.

Однако в процессе этого возникает ощутимая проблема конвертации - время рассвета, например 1648695812, переходит автоматом в scientific double 1.6487e+09, что очевидно сжирает часть необходимых секунд.

Конвертация происходит на этапе формирования QJsonDocument, проверено с помощью QVariantMap и дебага. На этапе получения данных с сервера проблем нет.

if(reply->error() == QNetworkReply::NoError) {

        QString ReplyText = reply->readAll();
        QJsonDocument doc = QJsonDocument::fromJson(ReplyText.toUtf8());
        weather_obj = doc.object().value("current").toObject();

        reply->deleteLater();
    }

Писать свой парсер под такой таск желания нет, да и как-то глупо выглядит, поэтому хотелось бы узнать, есть какой-нибудь обходной путь конвертации в Json.

Подойдут любые костыли.


Ответы (1 шт):

Автор решения: maestro

Класс QJsonValue имеет метод toInt, который переведет значение в тип int. А его можно напрямую присвоить типу time_t.

Если на вашей платформе тип time_t беззнаковый, то лучше выполнять промежуточное преобразование в QString, а из него уже в unsigned int.

→ Ссылка