我有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
。有什么建议吗?
答案 0 :(得分:1)
说明QJsonValue对象中有一个double值。快速尝试确认它由于某种原因不能转换为字符串,尽管它通过转换转换为64位int。
QJsonValue jv((double)9999960902);
qDebug() << jv.toString();
qDebug() << jv.toInt();
qDebug() << (qint64)jv.toDouble();
输出是:
""
0
9999960902