为什么Qt拒绝有效的JSON

Why does Qt reject a valid JSON?

本文关键字:JSON 有效 拒绝 Qt 为什么      更新时间:2023-10-16

使用 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,所以我用谷歌搜索了一秒钟。这是我发现的:

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

您想要做的事情似乎是通过QJsonDocument::fromJson实现的,它需要 UTF8 编码的 Json 字符串。

我没有fromBinaryData使用相同的参数使用fromJson,而是昨天遇到了这个确切的问题,这就是对我有用的。