我尝试通过请求api请求删除网站。然而,json中返回的数据有一个不可读的编码,如下所示:
à^!ÚÄÆ>>Ãñ 请求的Content-Type是“application / json; charset = utf-8”。有人对这种奇怪的编码有所了解吗?先验请求有效,否则存在明显错误。导航器的相同请求具有完全可读的响应。我正在使用Qt和QNetworkRequest。答案在我用toStdString()读取的QByteArray中。如果我尝试在QJsonDocument或QJsonObject中重新格式化QByteArray之前阅读它,答案中没有任何内容。
提前谢谢
答案 0 :(得分:0)
检查QJsonDocument类,并使用静态函数通过使用UTF-8格式的bytearray构造JsonDocument。
const QByteArray dataFromServer;
QJsonParseError er;
const QJsonDocument doc = QJsonDocument::fromJson(json, &er);
if (er.error != QJsonParseError::NoError) {
return false;
}
然后,点击QJsonObject,检查它是否是列表。您可以使用密钥迭代列表或访问给定值:
const QJsonObject object = doc.object();
const QString value = object.value(QLatin1String("My_key");
const std::string stdValue = value.toStdString();