【发布时间】:2019-12-23 03:36:57
【问题描述】:
我正在尝试从 QString 中获取一个数组。
我在网上得到了将字符串转换为 QJsonDocument 的建议,但是我的数组是空的。
QString string = "\"person\":\"{\"name\":\"John\", \"surname\":\"Smith\"}";
QJsonDocument doc1 = QJsonDocument::fromJson(string.toUtf8());
QJsonArray array = doc1.array();
预期的结果是得到一个QJsonValues数组(一个QJsonArray):
array[0] : {"name":"John"},
array[1] : {"surname":"Smith"}
【问题讨论】:
-
如果这是
string的完整值,您似乎缺少用{ }包装它。然后,它变成:"{\"person\":\"{\"name\":\"John\", \"surname\":\"Smith\"}}"。 -
谢谢您,塞尔吉奥,您的回复。我尝试了你的建议,但我仍然得到一个空数组。
-
一个 doc1.isArray() 检查返回 false。
-
基于示例,不清楚您在问什么;输入字符串中没有 JSON 数组。
-
当我使用 fromJson(string.toUtf8(), &error) 时,它说它是 QJsonParseError::UnterminatedObject。
标签: c++ arrays json qt qstring