首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

用java程序获取js里数组的数据解决方案

2014-01-01 
用java程序获取js里数组的数据各位大虾,我现在要用java程序获取js中一部分数组的数据,请问有什么方法,数组

用java程序获取js里数组的数据
各位大虾,我现在要用java程序获取js中一部分数组的数据,请问有什么方法,数组如下:

ds_array[471] = { code:"DS471", title:"Certain Methodologies and their Application to Anti-Dumping Proceedings Involving China", origin:"CHN", destination:"USA", start_date:"2013/12/03", subject:"", short_title:"", agreement:"", update_date:"2013/12/03", status:"ST1#2013_12_03", third_party:"", reports_adopted:"false"};
ds_array[470] = { code:"DS470", title:"Anti-Dumping and Countervailing Duty Investigations on Certain Paper Products from Indonesia", origin:"IDN", destination:"PAK", start_date:"2013/11/27", subject:"G112", short_title:"", agreement:"A9_1102#A9_890#A9_855#A9_1106#A9_858#A6_1#A6_536#A6_241#A20_379#A20_425#A20_676#A20_680#A20_543", update_date:"2013/11/27", status:"ST1#2013_11_27", third_party:"", reports_adopted:"false"};等等,里面全是键值对,开始考虑用json,但是json需要封装对象,这些数组里的键又不一致,所以没有办法封装对象,json也就用不成了。而且据我了解键值对应该是“code”:"DS471"这样两边都有双引号的,所以这些数组里又不像键值对,请问各位大神我需要怎么获取里面的数据啊
[解决办法]
不管用什么获取,你获取之后,都会因为键值不同而导致代码复杂度更高啊。

所以这个并不是不能使用json的原因。

你这本就是数组,直接转成json格式提交就可以了啊,然后后台接收到之后,解析成数组格式。
每一个数组元素都是一个对象。这没有问题的。

唯一的麻烦就是,数组中对象的键值并不是完全相同的,这个问题是避免不了的,你使用任何格式去提交,都会有这个问题存在啊,这个就在后台处理时,麻烦一点呗,

比如使用某个属性时,先判断是不是有这个属性存在,没有就不做处理,这也是结构不同的交互带来的一个麻烦吧。
[解决办法]
java 有js 解析器 

String fun = "var x= {code:"DS471", title:"Certain Methodologies and their Application to Anti-Dumping Proceedings Involving China", origin:"CHN",";
fun += " destination:"USA", start_date:"2013/12/03", subject:"", short_title:"", agreement:"", update_date:"2013/12/03", status:"ST1#2013_12_03", ";
fun += " third_party:"", reports_adopted:"false"};";
fun += "  var obj="";for(var o in x){  obj+=(o+"-->"+x[o]+"
[解决办法]
");  } ";

ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByExtension("js");
try {
engine.eval(fun);
} catch (ScriptException ex) {
ex.printStackTrace();
}
System.out.println(engine.get("obj"));

[解决办法]
missing ; 
你拷贝2楼允许看看。
" update_date:"2013/12/03", status:"ST1#2013_12_03", third_party:"", reports_adopted:"false"};";

热点排行