sciter框架下tis脚本与C++调用的参数json问题

sciter框架下tis脚本与C++调用的参数json问题

首先sciter框架下C++与tis脚本通过json格式传递参数和返回值,所以就会涉及到C++对json格式数据的解析。

一、这里说一个sciter框架下用std::bind(&function(), this, 参数1,参数2,…)绑定c++函数供tis调用的注意事项,参数列表里绑定的参数是json格式的话,可以直接在function()函数里面使用json参数直接返回tis返回值,但是不能在function()里面调用其他函数或者线程里面把bind的参数传进去再返回tis,原因是bind绑定的json参数会在function()结束后自动调用回调函数返回脚本,在别的函数或者线程不会自动回调,解决办法就是在需要返回脚本的时候自己写一个回调函数,tis脚本提供接收返回值的函数地址就可以解决了。

二、C++对json数据的解析,获取json数组的键值和值的方法:
each_key_value(cb);
each_key_value()通过回调函数cb把json数组的键值和值作为参数,在cb函数里接收,有多少组键值对就会回调多少次cb函数。

auto cb= [](json& key, json& val)->bool { //获取json object 键值对 的回调
std::string jianzhi= key.to_string();//键值
std::string zhi = val.to_string();//键
return TRUE;
};
jvUrlData.each_key_value(cb);

你可能感兴趣的:(学习)