是否可以将 long long 用作 QJsonObject 的值?我被迫将我的API从 JSON 更改为 XML ,因为我得到的1个字段有 BigInt 值,而且我无法从中提取大数据 QJsonValue
这是我可以展示正在发生的事情的代码的和平:
QJsonObject json;
unsigned long long ulongmax = ULONG_LONG_MAX;
QVariant variant = ulongmax;
qDebug() << variant;
qDebug() << ulongmax;
json.insert( "key", QJsonValue::fromVariant( variant ) );
unsigned long long json_value = json.value("key").toVariant().toULongLong();
qDebug() << json_value;
输出:
QVariant(qulonglong, 18446744073709551615)
18446744073709551615
9223372036854775808
期望的输出:
QVariant(qulonglong, 18446744073709551615)
18446744073709551615
18446744073709551615
我做错了吗?任何人都可以帮我找到如何在没有外部库的情况下使其正常工作?谢谢!
答案 0 :(得分:3)
我对此问题的解决方案就像编写JSON字符串而不是JSON编号一样简单:
检查转换中的错误可能有意义,请参阅提供的链接的API文档。
潜在的问题是JSON中的数字不需要引号。因此,您可能必须首先转换JSON文件以符合此字符串约定。