您好,欢迎访问一九零五行业门户网

js接收并转化Java中的数组对象的方法

在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去。。。当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了。
开始我以为有简单的方式,可以直接进行内容的转化,后来发现不可以,网上说js与java没有桥接的东西,所以呢:
我的解决方案是:在action层,将java的对象数组转化为json串,而在js中,再把json转化为数组对象。
1.将java的对象数组转化为json串:
要用到两个类:
net.sf.json.jsonobject net.sf.json.jsonarray //将每个vehicle对象拼接为json格式的对象,用于命令下发 jsonobject json = jsonobject.fromobject(v); //v即对象 jsonarray.add(json); //system.out.println(jsonarray.tostring()); //用于命令下发 sendcommandlist = jsonarray.tostring();
将其放在for循环中。
2.js将其转化为对象数组:
//注意:此时得到的是json串。 //注意:要加上escapejavascript="false" escape="false" ,否则传过来json字符串中的引号都会被解析成为" var szjsonstr = '<s:property escapejavascript="false" escape="false" value="sendcommandlist" />';
最后:
//把json字符串转化为对象数组 var addvehiclearray = eval(szjsonstr);
在用的时候,就直接用addvehiclearray[i].vehicletype;即可以了。。。。。。
扩展:
jsonobject与jsonarray的使用
1.jar包简介
要使程序可以运行必须引入json-lib包,json-lib包同时依赖于以下的jar包:
commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar
ezmorph.jar
json-lib-2.2.2-jdk15.jar
2.jsonobject对象使用
json-lib包是一个beans,collections,maps,java arrays 和xml和json互相转换的包。在本例中,我们将使用jsonobject类创建jsonobject对象,然后我们打印这些对象的值。为了使用jsonobject对象,我们要引入"net.sf.json"包。为了给对象添加元素,我们要使用put()方法。
2.1.实例1
package jsontest; import net.sf.json.jsonarray; import net.sf.json.jsonobject; public class jsonobjectsample { // 创建jsonobject对象 private static jsonobject createjsonobject() { jsonobject jsonobject = new jsonobject(); jsonobject.put("username", "huangwuyi"); jsonobject.put("sex", "男"); jsonobject.put("qq", "413425430"); jsonobject.put("min.score", new integer(99)); jsonobject.put("nickname", "梦中心境"); return jsonobject; } public static void main(string[] args) { jsonobject jsonobject = jsonobjectsample.createjsonobject();//静待方法,直接通过类名+方法调用 // 输出jsonobject对象 system.out.println("jsonobject:" + jsonobject); // 判读输出对象的类型 boolean isarray = jsonobject.isarray(); boolean isempty = jsonobject.isempty(); boolean isnullobject = jsonobject.isnullobject(); system.out.println("是否为数组:" + isarray + ", 是否为空:" + isempty + ", isnullobject:" + isnullobject); // 添加属性,在jsonobject后面追加元素。 jsonobject.element("address", "福建省厦门市"); system.out.println("添加属性后的对象:" + jsonobject); // 返回一个jsonarray对象 jsonarray jsonarray = new jsonarray(); jsonarray.add(0, "this is a jsonarray value"); jsonarray.add(1, "another jsonarray value"); jsonobject.element("jsonarray", jsonarray); //在jsonobject后面住家一个jsonarray jsonarray array = jsonobject.getjsonarray("jsonarray"); system.out.println(jsonobject); system.out.println("返回一个jsonarray对象:" + array); // 添加jsonarray后的值 // {"username":"huangwuyi","sex":"男","qq":"413425430","min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonarray":["this is a jsonarray value","another jsonarray value"]} system.out.println("结果=" + jsonobject); // 根据key返回一个字符串 string username = jsonobject.getstring("username"); system.out.println("username==>" + username); // 把字符转换为 jsonobject string temp = jsonobject.tostring(); jsonobject object = jsonobject.fromobject(temp); // 转换后根据key返回值 system.out.println("qq=" + object.get("qq")); } }
输出结果
jsonobject:{"username":"huangwuyi","sex":"男","qq":"413425430","min.score":99,"nickname":"梦中心境"} 是否为数组:false, 是否为空:false, isnullobject:false 添加属性后的对象:{"username":"huangwuyi","sex":"男","qq":"413425430","min.score":99,"nickname":"梦中心境","address":"福建省厦门市"} {"username":"huangwuyi","sex":"男","qq":"413425430","min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonarray":["this is a jsonarray value","another jsonarray value"]} 返回一个jsonarray对象:["this is a jsonarray value","another jsonarray value"] 结果={"username":"huangwuyi","sex":"男","qq":"413425430","min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonarray":["this is a jsonarray value","another jsonarray value"]} username==>huangwuyi qq=413425430
2.2.实例2.
package jsontest; import net.sf.json.jsonarray; import net.sf.json.jsonobject; public class jsontest { public static void main(string args[]) { jsonobject jsonobj0 = new jsonobject(); jsonobject jsonobj = new jsonobject(); jsonobject jsonobj2 = new jsonobject(); jsonobject jsonobj3 = new jsonobject(); jsonarray jsonarray = new jsonarray(); //创建jsonobj0 jsonobj0.put("name0", "zhangsan"); jsonobj0.put("sex1", "female"); system.out.println("jsonobj0:"+jsonobj0); //创建jsonobj1 jsonobj.put("name", "xuwei"); jsonobj.put("sex", "male"); system.out.println("jsonobj:"+jsonobj); //创建jsonobj2,包含两个条目,条目内容分别为jsonobj0,jsonobj1 jsonobj2.put("item0", jsonobj0); jsonobj2.put("item1", jsonobj); system.out.println("jsonobj2:"+jsonobj2); //创建jsonobj3,只有一个条目,内容为jsonobj2 jsonobj3.element("j3", jsonobj2); system.out.println("jsonobj3:"+jsonobj3); //往jsonarray中添加jsonobject对象。发现jsonarray跟jsonobject的区别就是jsonarray比jsonobject多中括号[] jsonarray.add(jsonobj); system.out.println("jsonarray:"+jsonarray); jsonobject jsonobj4 = new jsonobject(); jsonobj4.element("weather", jsonarray); system.out.println("jsonobj4:"+jsonobj4); } }
输出结果:
jsonobj0:{"name0":"zhangsan","sex1":"female"} jsonobj:{"name":"xuwei","sex":"male"} jsonobj2:{"item0":{"name0":"zhangsan","sex1":"female"},"item1":{"name":"xuwei","sex":"male"}} jsonobj3:{"j3":{"item0":{"name0":"zhangsan","sex1":"female"},"item1":{"name":"xuwei","sex":"male"}}} jsonarray:[{"name":"xuwei","sex":"male"}] jsonobj4:{"weather":[{"name":"xuwei","sex":"male"}]}
以上这篇js接收并转化java中的数组对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
更多js接收并转化java中的数组对象的方法。
其它类似信息

推荐信息