0

我正在尝试在 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()

但由于某种原因,我的地图是空的,这是一个调试快照: 对象的 QJsonDocument 为空

我该如何解决这个问题?

数据 :

'{\"x\":1,\"y\":2,\"z\":3}'
4

1 回答 1

1

假设您阅读正确,您应该使用如下命令进行测试:

echo -n \{\"x\":1,\"y\":2,\"\z\":3\} > /dev/udp/127.0.0.1/8080

因此,摆脱单引号并转义大括号。

更好的是:将您的 json 数据放在一个myfile文件中并使用cat myfile > /dev/udp/127.0.0.1/8080

于 2020-12-10T08:46:22.857 回答