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 шт):
Класс QJsonValue имеет метод toInt, который переведет значение в тип int. А его можно напрямую присвоить типу time_t.
Если на вашей платформе тип time_t беззнаковый, то лучше выполнять промежуточное преобразование в QString, а из него уже в unsigned int.