在js里有一个数组, 传到java里,怎么去解析?

Rooock 2009-09-20 11:04:59
在js里有一个数组:

var params = new Array();
params.push({
"id":"007",
"name":"bangder"
});
params.push({
"id":"001",
"name":"admin"
});


现在我传给到了java里.
在java里怎么才能拿到js数组中的值啊~

// 已得到js中的参数
String[] params = getParams();
// 遍历
for(int i = 0; i < params.length; i++)
{
// 我在这里怎么才能得到具体的值呢.
}



也许.传递数组进来本身就是个走不出的胡同.
...全文
831 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BearKin 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sunny_kaka 的回复:]
http://www.json.org有现成的json数据转换的类库和js库.
可以满足你的需求.
Java库好像叫json-lib,js文件是json2.js
[/Quote]

用json 如果怕麻烦的话还是弄成有规律的字符串到后台解析去吧
kc8886 2009-09-21
  • 打赏
  • 举报
回复
学习了
shine333 2009-09-21
  • 打赏
  • 举报
回复
JDK 1.6+,使用里面的ScriptEngine运行(eval)js,并把响应信息保存在上下文环境(ScriptContext)中,然后不断地取出来。
有一个问题,就是每次取(getAttribute)只能取简单的变量名,比如x, length之类已经显式定义过,但是不能取param[0]。
其次,每次取出的对象最好是简单数据,也就是
var id = params[0].id; 

Object id = ctx.getAttribute("id");

而不是
var param = params[0]; 

Object param = ctx.getAttribute("param");

后面一种方式,通过debug也能看到id,name的信息,但是由于这种类型的class依赖于供应商的实现,可能随版本而发生变化,导致代码不兼容。
shine333 2009-09-21
  • 打赏
  • 举报
回复
import javax.script.*;



ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String script = "var params = new Array();\r\n" + "params.push({\r\n"
+ " \"id\":\"007\",\r\n" + " \"name\":\"bangder\"\r\n" + "});\r\n"
+ "params.push({\r\n" + " \"id\":\"001\",\r\n"
+ " \"name\":\"admin\"\r\n" + "});";
ScriptContext ctx = new SimpleScriptContext();
engine.eval(script, ctx);
engine.eval("var length = params.length", ctx);
int length = ((Number) ctx.getAttribute("length")).intValue();
String[][] param = new String[length][2];
for (int i = 0; i < length; i++) {
String evalScript = String
.format("var id = params[%1$d].id;var name = params[%1$d].name;", i);
engine.eval(evalScript, ctx);
param[i][0] = String.valueOf(ctx.getAttribute("id"));
param[i][1] = String.valueOf(ctx.getAttribute("name"));

System.out.printf("id: %s, name: %s%n", param[i][0], param[i][1]);
}
Willowgao 2009-09-21
  • 打赏
  • 举报
回复
什么拼接?
  • 打赏
  • 举报
回复
用特殊字符拼成字符串,后台得到后在分解一下。
yagexury 2009-09-21
  • 打赏
  • 举报
回复
把ID ,和NAME连成一个字符串,放入到一个数组,JAVA用数组接收就行,再进行拆分
Sunny_kaka 2009-09-20
  • 打赏
  • 举报
回复
http://www.json.org有现成的json数据转换的类库和js库.
可以满足你的需求.
Java库好像叫json-lib,js文件是json2.js
淡定的峰哥 2009-09-20
  • 打赏
  • 举报
回复
确实
只能拼成串,然后根据特定的字符分隔

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧