c++ - 为什么 Qt 拒绝有效的 JSON?

标签 c++ json qt

使用 Qt-5.0,我有这个 JSON 字符串

{"type":"FILE"}

我希望 fromBinaryData 接受字符串的 .toLocal8Bit() 作为有效格式,但事实并非如此。

QString j = "{\"type\":\"FILE\"}";

auto doc = QJsonDocument::fromBinaryData(j.toLocal8Bit());

doc.isNull() // It's true, means the entry is not valid

我错过了什么吗?

最佳答案

我不知道 Qt,所以我用谷歌搜索了一下。 Here's what I found :

您拥有的是一个字符串,一种文本表示形式。它不是 Qt 内部使用的二进制格式。二进制数据将不可读。 QJsonDocument::fromBinaryData 需要这样的二进制 blob。

你想做的事情似乎可以通过 QJsonDocument::fromJson 实现,它需要一个 UTF8 编码的 Json 字符串。

关于c++ - 为什么 Qt 拒绝有效的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20282415/

相关文章:

c++ - 是否可以只对程序的一部分使用 Boehm 垃圾收集器?

c++ - 代码块 "Other Linker Options"翻译 "Link Libraries"和库包含效率

json - 当列表只有一个元素时,CXF 返回对象而不是 js 数组

qt - QML 中的文本跨平台呈现不同

qt - QT 平台 dll 应该去哪里?

c++ - 字符串到枚举模板错误

使用 printf 在控制台中使用 C++ unicode 字符?

c++ - std::atomic<T>::wait 的 std::memory_order

c# - javascript : json object with arrays serialized for use in . NET MVC 操作

python - 使用 Python 从 import.io 加载时出现 JSON 行问题