作为 qt 文档QJSValue
,QJsonObject
不能隐式转换为QJSValue
,我想QJSEngine
从 C++ 调用一个 javascript 函数,应将参数传递QList<QJsValue>
给调用另一个QJSValue
包含函数本身的函数。
问题是我的一个论点是QJsonObject
,直到现在我应该将其转换为文本,然后调用并将其传递给调用它以JSON.parse
将其转换为对象的 javascript 函数,我正在寻找一种可以让我转换QJsonObject
为QJSValue
C++的解决方案并使用对象参数而不是 json 文本调用 javascript 函数。
目前代码如下所示
QJsonObject obj;
obj["1"] = QString("A");
obj["2"] = QString("B");
QJSValue func = myEngine.evaluate("(function(arg) { var obj = JSON.parse(arg); var res = obj[\"1\"] + obj[\"2\"]; return res; })");
QJSValueList args;
args << QString(QJsonDocument(obj).toJson());
QJSValue res = func.call(args);
我想要一个像这样的功能QJSValue ConvertToQJSValue(QJsonObject object)
:
QJsonObject obj;
obj["1"] = QString("A");
obj["2"] = QString("B");
QJSValue func = myEngine.evaluate("(function(arg) { var res = arg[\"1\"] + arg[\"2\"]; return res; })");
QJSValueList args;
args << ConvertToQJSValue(obj);
QJSValue res = func.call(args);