在做项目时,要向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中的数组对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 古典吉他《鲁特琴-BachInspirations巴赫灵感》ThibautGarcia[24Bit/96kHz]
- 刘纬武《睡眠音乐家 缓解疼痛 赫兹白噪音》[320K/MP3][217.2MB]
- 刘纬武《睡眠音乐家 缓解疼痛 赫兹白噪音》[FLAC/分轨][870.69MB]
- 群星1998 《宝丽金最佳电视主题曲》香港首版[WAV+CUE][1.2G]
- 群星1990《群星会·金曲重现》新加坡版[WAV+CUE][1.1G]
- 张惠妹2003《勇敢》[WAV+CUE][1.1G]
- 群星1995《摇滚中国乐势力》首版引进版[WAV+CUE][983M]
- 陈思安《32首酒廊情调》2CD新雅(国际)影碟[WAV+CUE]
- 齐豫潘越云《回声》K2HD[正版原抓WAV+CUE]
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]