本文概述
- 包括必需的组件
- 用Java创建JSON对象
- 用Java创建JSON数组
- 使用Cordova将JSON数组和JSON对象发送到javascript
包括必需的组件我们需要在类中包括以下组件, 然后我们才能创建json数组和对象(如果使用try and catch block, 则需要包括JSONException)。
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
用Java创建JSON对象在javascript中, 创建对象确实非常容易, 你只需要为对象分配属性名称即可, 仅此而已(使用点或括号表示法)。使用Java也很简单, 但是有所不同。
JSONObject构造函数可用于将外部表单JSON文本转换为内部表单, 可使用get和opt方法检索其值, 或使用put和toString方法将值转换为JSON文本。如果可以找到一个get方法, 则返回一个值;如果找不到一个方法, 则抛出异常。 opt方法返回默认值而不是引发异常, 因此对于获取可选值很有用。
在这种情况下, 我们只想将数据从Java发送到Javascript, 我们将创建一个类型为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对象。
用Java创建JSON数组在javascript中, 我们需要调用push函数将项目添加到现有数组中。与java相同, 只是你需要使用JSONArray类声明一个新数组, 并使用add添加各项。
【如何将JSON对象从Java返回到javascript(cordova)(2)】JSONArray可以将JSON文本转换为Java对象。 toString方法转换为JSON文本, 这就是我们要发送到Javascript的内容。
JSONArray jsonArray = new JSONArray();
jsonArray.add("item number 1");
jsonArray.add("item number 2");
// in javascript this is something like :// ["item number 1", "item number 2"]
使用Cordova将JSON数组和JSON对象发送到javascript通常, 我们会使用以下一些选项将响应从Java返回到javascript:
String response = "myinformation";
PluginResult result = new PluginResult(PluginResult.Status.OK, response);
result.setKeepCallback(true);
callbackContext.sendPluginResult(result);
// orcallbackContext.success(response);
在这种情况下, 如果尝试将响应替换为以前创建的变量之一(item或jsonArray), 则显然会出现错误。为什么呢?因为你要发送的不是字符串变量, 所以请记住JSON是字符串, 我们将仅使用变量的toString方法将其转换为JSON String表示法:
JSONArray jsonArray = new JSONArray();
JSONObject item = new JSONObject();
// Send an object callbackContext.success(item.toString());
//or Send an arraycallbackContext.success(jsonArray.toString());
玩得开心 !
推荐阅读
- 如何使用Electron Framework选择,读取,保存,删除或创建文件
- SCRCPY(提供显示和控制USB上连接的Android设备的应用程序)
- Grommet(专为ReactJS设计的设计系统)
- Android Volley Self签名证书
- 如何在mybatis的mapper接口中为更新查询编写foreach循环
- Dockerized webapp - 热重新加载
- WebApplication ASP.Net C#。取消屏蔽文本框,也称为显示密码
- 解决Azure Web App 500内部服务器错误超时问题并对其进行故障排除
- 如何在不使用webView的情况下在Android应用程序中显示Web内容