C++ toString():JSON中的数字
我有QJsonObject,这里是:C++ toString():JSON中的数字,c++,json,qt,C++,Json,Qt,我有QJsonObject,这里是: QJsonObject({"key":"1475bee449df002422340510c355a7f8b48ea647","pts":960894,"server":"imv4.vk.com/im1976","ts":1626706149}) object[“key”].toString()-确定,它返回1475BEE449DF0024222340510C3555A7F8B48EA647 object[“server”].toString()-好的,它返
QJsonObject({"key":"1475bee449df002422340510c355a7f8b48ea647","pts":960894,"server":"imv4.vk.com/im1976","ts":1626706149})
object[“key”].toString()
-确定,它返回1475BEE449DF0024222340510C3555A7F8B48EA647
object[“server”].toString()
-好的,它返回imv4.vk.com/im1976
object[“ts”].toString()
-失败,返回“
”
object[“pts”].toString()
-失败,返回“
”
是的,我可以做
QString::number(object[“ts”].toInt())代码>,但它不是解决方案:值可以大于MAXINT
。对象[“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();
请提供一个准确的代码,而不是“我有QJsonObject,看起来像这样”。因为它不应该看起来像那样。但是代码不能看起来像上面的那行。据了解,您正在显示该对象的内容。请试着做qDebug(),我写过它是双精度的,但好的,完成了。我实际上在我的32位项目中测试了它。对有了64位整数,如果需要,您还可以将其转换为字符串。是印刷的,嗯。
""
0
9999960902