将java JSONobject发送到javascript函数

时间:2017-02-12 02:09:09

标签: javascript java json

将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()不起作用(可能是由于撇号)。我也无法“工作”。正确的语法是什么?

2 个答案:

答案 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 + "\")");