Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t将双引号JSON从Android Java传递到Javascript_Javascript_Java_Android_Json - Fatal编程技术网

Can';t将双引号JSON从Android Java传递到Javascript

Can';t将双引号JSON从Android Java传递到Javascript,javascript,java,android,json,Javascript,Java,Android,Json,情景: TLDR;为什么我不能将(“”)从Android传递到JavaScript,只有(“”)起作用 我通过以下方式将一个JSON对象从Android发送到JavaScript: mWebView.loadUrl("javascript:foo(\"" + bar + "\")"); 据我所知,这将调用javascript函数foo(),并将bar的值传递给它 bar变量是一个JSON对象,例如: bar = "{'id':'"+barID+"','title':'"+barTitle+"

情景:

TLDR;为什么我不能将(“”)从Android传递到JavaScript,只有(“”)起作用

我通过以下方式将一个JSON对象从Android发送到JavaScript:

mWebView.loadUrl("javascript:foo(\"" + bar + "\")");
据我所知,这将调用javascript函数foo(),并将bar的值传递给它

bar变量是一个JSON对象,例如:

 bar = "{'id':'"+barID+"','title':'"+barTitle+"'}";
现在,在javascript端,函数foo()执行以下操作:

function foo(json){
   var completeJsonObject;
   json = json.replace(/'/g, '"');
   completeJsonObject = JSON.parse(json);
}
这非常有效,因为它将(')替换为(“”),然后可以解析json

然而,为了避免替换,我可以在java端用(“”)来格式化json,而不是像下面那样,对吗

bar = "{\"id\":\""+barID+"\",\"title\":\""+barTitle+"\"}";
不,只要我这么做,JavaScript就会给我一个意外的令牌错误


有没有比使用我的解决方案更好的方法来解决这个问题?

mWebView.loadUrl(“javascript:foo(\“”+bar+“\”));被你的“输入”栏打断,javascript就混乱了。最好保留你的解决方案。我想这是有道理的。