【发布时间】:2019-05-15 17:36:30
【问题描述】:
我正在使用 Qt 和 JSON。现在,我有两个选择:QVariant 和 QJsonValue。我不明白它们的不同之处?
我知道 QVariant 有更多方法,QJsonValue 有 is*** 方法(其中 QVariant 有类型)。
但是还有其他主要区别(也许是速度)吗?如果不是:为什么有两个类可以做几乎相同的事情?
【问题讨论】:
-
当然,Qvariant可以包含更多的类型,但是如果有替代的QVariant,为什么还要使用QJsonvalue呢?
-
JsonValue 是一种特殊类型,只允许在标准 json 中以字符串、数字、布尔值等形式表示的某些类型的数据。
-
好的,我想我现在明白了。 QJsonvalue 与 QVariant 没有太大区别,但有一些小的优势。就像你说的......里面只有 JSON 值。而我之前发现,QJsonvalue 是严格类型的 -> 你不能进行任何隐式转换。感谢您的帮助@eyllanesc
-
上面提到的一切都是真实的,除此之外,您可以在 QVariant 中存储一些特定于 Qt 的类型,或者注册自己的类型并存储它。它们可能不容易序列化为 Json,但可以存储在 QVariant 中。