将java中的JSONobject传递给javascript函数
final JSONObject json = new JSONObject();
try {
json.put("Colour", spinnerText1);
json.put("Gender", spinnerText2);
} catch (JSONException e) {
和
webview.loadUrl("javascript:updateJSON('User36'" + ",'" +
incident + "'," +
latitude + "," +
longitude + ",\"" +
"asdf" + "\")");
上述文件正确发送到javascript文件。我想用名为json = {“Color”的JSON对象替换“asdf”:“White”,“Gender”:“Male”}
使用json.toString()不起作用(可能是由于撇号)。我也无法“工作”。正确的语法是什么?
答案 0 :(得分:1)
你要做的是发送一个字符串。您可以做的一件事是将JSON转换为字符串
final JSONObject json = new JSONObject();
try {
json.put("Colour", spinnerText1);
json.put("Gender", spinnerText2);
} catch (JSONException e) {...}
也许你看一下java中的类文档(也可以使用toString) http://www.gwtproject.org/javadoc/latest/com/google/gwt/json/client/JSONObject.html
webview.loadUrl(
"javascript:updateJSON(
'User36'" + ",'" +
incident + "'," +
latitude + "," +
longitude + ",\"" +
json.toString() + "\"
)"
);
也许更好,用username和其他属性构建一个完整的对象,并将其直接发送给该函数。
答案 1 :(得分:0)
需要在json中替换逗号,如下所示
final String json1 = json.toString();
final String json2 = json1.replace("\"","\\");
Log.e("JSON data",json2);
然后
webview.loadUrl("javascript:updateJSON('User36'" + ",'" +
incident + "'," +
latitude + "," +
longitude + ",\"" +
json2 + "\")");