【问题标题】:QVariantMap Json Parsing in QTQT中的QVariantMap Json解析
【发布时间】:2010-09-15 11:00:49
【问题描述】:

我正在使用以下代码进行解析:

QJson::Parser parser;
bool ok;
QVariantMap result=parser.parse (cityReply->readAll(),&ok).toMap();
if (!ok)
{
    qFatal("An error occurred during parsing");
    exit (1);
}

foreach (QVariant city, result.toList())
{
    QVariantMap names = city.toMap();
    qDebug() << "\t-" << names["name"].toString();
}

我的 json 字符串是[{"id":2,"name":"AAA"},{"id":1,"name":"BBB"}]

我收到以下错误:

“QVariantMap 类”没有名为“toList”的成员。

是否可以将 QMap 转换为 QList?

【问题讨论】:

    标签: qt qt4 qjson


    【解决方案1】:

    result 包含一个序列化数组QVariant。您需要在调用toList() 函数之前将其提取出来。由于数组未在 Json 字符串中命名,因此您可以通过获取地图中的第一个 QVariant 并执行您在问题中所写的操作来访问它。

    【讨论】:

    • 对不起..你能解释一下吗?
    • 关于Json字符串,QVariantMap只包含一个元素:数组。只需使用 QMap 函数获取它,然后将其转换为列表
    • @PatriceBernassola 您能否按照答案中的建议使用 QMap 从数组中提取代码示例?我是这个 api 的新手并且有类似的问题。我的代码与上面类似,但我的 json 也包含一个数组名称,即 [{"chan":{"id":1, "name":"one"}},{"chan":{"id": 2,"名称":"两个"}}]
    • QJson官方文档提供了每种序列化数据的代码示例:qjson.sourceforge.net/usage。检查 plugins 数组是如何反序列化的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2019-03-19
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多