toString():JSON中的数字

时间:2014-11-23 16:32:24

标签: c++ json qt

我有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());,但它不是解决方案:价值可能大于MAXINTobject["ts"]的类型为double

QJsonValue(double, 1626706149)

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

1 个答案:

答案 0 :(得分:1)

说明QJsonValue对象中有一个double值。快速尝试确认它由于某种原因不能转换为字符串,尽管它通过转换转换为64位int。

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

输出是:

""
0
9999960902