为什么Qt会拒绝有效的JSON?

时间:2013-11-29 09:32:08

标签: 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

我错过了什么吗?

2 个答案:

答案 0 :(得分:12)

我不知道Qt,所以我用Google搜索了一秒钟。 Here's what I found

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

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

答案 1 :(得分:8)

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