无法将'QJsonObject'转换为'int'作为回报

时间:2017-12-04 23:18:02

标签: c++ qt qjson

所以我有:

QJsonArray nodeCollection;

nodeCollection.push_back(ListElements(program, "title", "lang"));

我的ListElements方法声明QJsonObject,用我需要的东西填充它,并且应该返回该对象,以便它可以推送到nodeCollection数组变量:

ListElements (QDomElement root, QString tagname, QString attribute)
{

         auto nodeData = QJsonObject(
            {
            qMakePair(QString(itemElement.tagName()), QJsonValue(itemElement.text())),
            qMakePair(QString("lang"),QJsonValue(itemElement.attribute("lang"))),
            });

            return nodeData;  // <-- error
        }
    }
}

我得到的错误是:

error: cannot convert 'QJsonObject' to 'int' in return

我显然是C ++的新手,我搜索了这个问题取得了一些成功,但没有具体的例子来解决这个问题。

我做错了什么?我怎么能告诉它应该返回QJsonObject而不是int的方法?

2 个答案:

答案 0 :(得分:3)

您必须将返回类型添加到函数原型的开头:

QJsonObject ListElements (QDomElement root, QString tagname, QString attribute)

如果未指定返回类型,则默认的假定返回类型为int,这就是您收到此错误的原因。

答案 1 :(得分:2)

如果你写这样的函数:

MyFunc(double, float) {
   ...
}

然后假定它的返回类型为int,因为没有指定返回类型。如果您希望它返回其他内容,则需要指定返回类型:

QJsonObject MyFunc(double, float) {
   ...
}