我有 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 对象中有一个 double 值。快速尝试确认它不会由于某种原因转换为字符串,尽管它通过转换转换为 64 位 int。
QJsonValue jv((double)9999960902);
qDebug() << jv.toString();
qDebug() << jv.toInt();
qDebug() << (qint64)jv.toDouble();
输出是:
""
0
9999960902
关于c++ - toString() : numbers in JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091336/