c++语句转成js,或者在js中运行c++

问题遇到的现象和发生背景

需要将这段c++改成js代码在前段刷新accessToken

问题相关代码,请勿粘贴截图

if (url.contains("token/ys7")) {
QJsonValue t = json.value("cause");
if (!t.isUndefined()) {
QJsonObject obj = t.toObject();
t = obj.value("data");
if (!t.isUndefined()) {
obj = t.toObject();
t = obj.value("accessToken");
if (!t.isUndefined()) {
m_token = t.toString();
log("token:" + m_token);
if (formUnit != NULL) formUnit->setToken(m_token);
}
}
}
}

运行结果及报错内容

在idea上运行不了

我的解答思路和尝试过的方法
我想要达到的结果

因为你用到了accessTokenjson等这些有预定义结构的东东,所以除非你给出更全面的定义,别人不好进一步解答。但稍微注释转换一下还是可以的。

转换为js的伪代码:

if (url.search("token/ys7")>-1) {  //js的字符串搜索,判断url中是否存在"token/ys7"  
   // 下面几级都是json查询结构中的元素,不过c++与js查询处理方式差异很大
   myJSONobj=JSON.parse(jsonText);   // 这里直接一句话就把jsonText 转换为一个js内存对象,后续查询可以据此展开,而且es6语法支持链式判断,可以直接进行查询多级对象
   if (myJSONobj.cause?.data?.accessToken?){
        m_token=myJSONobj.cause.data.accessToken
        control.log("token:" + m_token);
        if(formUnit ) formUnit.setToken(m_token); //  这里这个formUnit 需要你重新定义,而且调用方式和c++是不同的。
   }
}

上面的代码需要根据实际情况(可能是全面的c++实现),来进一步完善。

 用WebAssembly编译下c++代码, js就可以直接调用了, 不需要转js