【发布时间】:2020-12-10 05:19:09
【问题描述】:
我正在尝试在 Qt5 中解析一个简单的 JSON 数据。
代码如下所示:
...
socket->readDatagram(Buffer.data(),Buffer.size(),&sender,&senderPort);
QJsonParseError jsonError;
QJsonDocument dataJson = QJsonDocument::fromJson(Buffer.data(),&jsonError);
if (jsonError.error != QJsonParseError::NoError){
qDebug() << jsonError.errorString();
}
QJsonObject map = dataJson.object();
//map["x"].toDouble()
我该如何解决这个问题?
数据:
'{\"x\":1,\"y\":2,\"z\":3}'
【问题讨论】:
-
您应该在 Qt Creator 的应用程序输出中看到有关 json 错误字符串的日志打印,因为 fromJson 调用显然没有成功。如果解析失败,你不应该继续执行你的函数,但是例如从它返回。我怀疑你的 json 字符串转义出错了。如果在 echo 调用中将单引号替换为双引号会怎样?
-
我已经测试了你的代码,它对我有用!当 JSON 反序列化器开始工作时,请确保您的缓冲区已满。不要依赖调试输出,添加一些控制台打印并检查。
标签: c++ qt qt5 qjsonobject qjsondocument