关于java这边怎样将json传递到js

目前找的方法:Cocos2dxJavascriptJavaBridge.evalString(message); 来调用js的代码,传参是普通字符串,但是json字符串不能正常传参到js代码那边,寻求高手帮助下。
代码如下:

java代码:

	JSONObject postMessage0 = new JSONObject();
	try {
		postMessage0.put("name", "zhangsan");
		postMessage0.put("action", "driver");
	} catch (JSONException e) {
		e.printStackTrace();
	}

       String message1= "\"" + postMessage0.toString() + "\"";
       String message = "console.log(" + message1+ ")";
       Cocos2dxJavascriptJavaBridge.evalString(message);
       
       结果json字符串参数不能正常传递到js。

     PS:传普通字符串参数是可以传递过去的,比如
     String message = "console.log(\"Javascript Java bridge!\")";
     Cocos2dxJavascriptJavaBridge.evalString(message);

把json base64 记得使用nowrap方式 编码一下 ,然后js 这边 base64.decode() 出来 然后 再JSON.parse()就可以了

另外 直接 Cocos2dxJavascriptJavaBridge.evalString(message); 会有崩溃的危险。

必须这样:

activity.runOnGLThread(new Runnable() {
@Override
public void run() {
Cocos2dxJavascriptJavaBridge.evalString(“你的字符串”);
}
});

请问,cococreator有base64的实现吗

BASE64你直接使用JS版本的BASE64类就可以了 百度一下 JS BASE64

谢谢了

对了,能解释一下,为什么单传json不行。需要编码。
是什么原理吗

怕万一有字符串造成 evalString 发生错误 所以 转成BASE64比较保险

了解,像引号这种