【发布时间】:2016-11-07 17:00:14
【问题描述】:
我有一个 JSON 数据数组已经存储在一个 javascript 变量中,如下所示:
var data = [{"a":153.15,"b":26.15,"c":item1},{"a":148.63,"b":23.45,"c":item2}];
function alertJson(data) {
Android.alertJson(data);
}
然后,我想在java中做这样的事情:
@JavascriptInterface
public void alertJson(Array jsonStr) {
JSONArray jsonarray = new JSONArray(jsonStr);
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject jsonobject = jsonarray.getJSONObject(i);
String a = jsonobject.getString("a");
String b = jsonobject.getString("b");
String c = jsonobject.getString("c");
}
}
现在我收到一条错误消息,提示无法将 Array 解析为 Array jsonStr 中的类型。
但问题是 jsonStr 未定义或未初始化。我想在 jsonStr 中获取 javascript 变量的值(数组),以便可以在 java 中使用它。我怎样才能做到这一点?
顺便说一句,我知道如何将 javascript 绑定到 android。我想我只需要一种方法以某种方式将数组存储在 jsonStr 中,就像使用函数一样。请帮帮我。
【问题讨论】:
-
将json数组转成字符串后发送。
-
你能展示一下你是如何得到 jsonStr 的吗?
-
@TomerShemesh 我刚刚编辑了我的问题以添加信息。我想做的是在 webview 中发生 onclick 时使用 java 代码。你能帮我进一步吗?谢谢!
-
@Azim 你能详细解释一下吗?你的意思是我应该把 JSONArray 改成别的吗?
标签: javascript java android arrays json