toString():JSON 中的数字

toString(): numbers in JSON

本文关键字:数字 JSON toString      更新时间:2023-10-16

我有QJsonObject,这里是:

QJsonObject({"key":"1475bee449df002422340510c355a7f8b48ea647","pts":960894,"server":"imv4.vk.com/im1976","ts":1626706149})

object["key"].toString() - 好的,它返回 1475bee449df002422340510c355a7f8b48ea647
object["server"].toString() - 好的,它返回 imv4.vk.com/im1976
object["ts"].toString() - 失败,返回 "" .
object["pts"].toString() - 失败,返回 "" .

是的,我可以做QString::number(object["ts"].toInt());,但这不是解决方案:价值可以大于MAXINT.object["ts"]类型double

QJsonValue(double, 1626706149)

object["ts"].toDouble()回报1.62671e+09.有什么建议吗?

据解释,QJsonValue 对象中有一个双精度值。快速尝试确认由于某种原因它不会转换为字符串,尽管它通过强制转换转换为 64 位 int。

QJsonValue jv((double)9999960902);
qDebug() << jv.toString();
qDebug() << jv.toInt();
qDebug() << (qint64)jv.toDouble();

输出为:

""
0
9999960902