如何将JSON对象从Java返回到javascript(cordova)

在cordova中, 你可能需要将一些数据返回到视图(不仅是简单的字符串)。可以使用JSON将这些数据有效地发送到视图, 但是我们不会手动从数组创建JSON字符串, 因为这不是一个好习惯。
使用Java android将信息从Java发送到Cordova中的javascript:
我们需要在类中包括以下组件, 然后我们才能创建json数组和对象(如果使用try and catch block, 则需要包括JSONException)。

import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;

在javascript中, 创建对象确实非常容易, 你只需要为对象分配属性名称即可, 仅此而已(使用点或括号表示法)。 Java也很简单, 但是有所不同, 我们将创建一个JSONObject类型的变量, 并使用PUT函数添加一个键。
JSONObject item = new JSONObject(); item.put("name", "filename.java"); item.put("filepath", "aimaginarypath"); // in javascript this is something like// {filepath:"aimaginarypath", name:"filename.java"}

可变项包含名称和文件路径键, 作为普通的javascript对象。
在javascript中, 我们需要调用push函数将项目添加到现有数组中。与java相同, 只是带有其他名称(添加)。
JSONArray jsonArray = new JSONArray(); jsonArray.put("item number 1"); jsonArray.put("item number 2"); // in javascript this is something like :// ["item number 1", "item number 2"]

要发送数组或对象, 我们将在变量上调用toString方法。这是在Cordova中发送结果的两种方法(请记住, callbacks =类的callbackContext变量):
异步(使用threadPool)
JSONArray jsonArray = new JSONArray(); jsonArray.put("item number 1"); // send the JSONArray using jsonArray.toString(); PluginResult result = new PluginResult(PluginResult.Status.OK, jsonArray.toString()); result.setKeepCallback(true); callbacks.sendPluginResult(result);

“ 同步”
JSONObject item = new JSONObject(); item.put("name", "filename.java"); callbacks.success(item.toString());

【如何将JSON对象从Java返回到javascript(cordova)】然后, 你只需要使用Javascript(JSON.parse(jsonstring))进行解析, 就可以玩得开心!

    推荐阅读