TheONE智能88键钢琴对应的简谱图烤漆版88键怎么样,售后好吗

js接收并转化Java中的数组对象的方法
投稿:jingxian
字体:[ ] 类型:转载 时间:
下面小编就为大家带来一篇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字符串中的引号都会被解析成为&quot
var szJsonStr = '&s:property escapeJavaScript="false" escape="false" value="sendCommandList" /&';
//把Json字符串转化为对象数组
var addVehicleArray = eval(szJsonStr);
在用的时候,就直接用addVehicleArray[i].vehicleT即可以了。。。。。。
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()方法。
import net.sf.json.JSONA
import net.sf.json.JSONO
public class JSONObjectSample {
// 创建JSONObject对象
private static JSONObject createJSONObject() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("username", "huangwuyi");
jsonObject.put("sex", "男");
jsonObject.put("QQ", "");
jsonObject.put("Min.score", new Integer(99));
jsonObject.put("nickname", "梦中心境");
return jsonO
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":"","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":"","Min.score":99,"nickname":"梦中心境"}
是否为数组:false, 是否为空:false, isNullObject:false
添加属性后的对象:{"username":"huangwuyi","sex":"男","QQ":"","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市"}
{"username":"huangwuyi","sex":"男","QQ":"","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":"","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
username==&huangwuyi
2.2.实例2.
import net.sf.json.JSONA
import net.sf.json.JSONO
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中的数组对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具今天看啥 热点:
使用jQuery.makeArray() 将多种类型转换成JS原生Array,jquery.makearray
jQuery.makeArray(obj)这个函数从名字上来看很容易猜出它的用途:应该是用来将传入的对象转换成一个原生array
再看看官网上对它的解释:Convert an array-like object into a true JavaScript array.(将一个类似数组对象转换为JS原生的数组)
那么怎么样的object才可以称为&array-like object&呢?这个问题不急着回答,相信看完文章你会明白的,先看看下面的实验
将HTMLCollection转换成原生Array
&!doctype html&
&html lang=&en&&
&meta charset=&utf-8&&
&title&jQuery.makeArray demo&/title&
&script src=&///jquery-1.10.2.js&&&/script&
&div& First &/div& &div& Second &/div& &div& Third &/div& &div& Fourth &/div&
// Returns a NodeList
var elems = document.getElementsByTagName(&div&);
// Convert the NodeList to an Array
var arr = jQuery.makeArray(elems);
// Use an Array method on list of dom elements
arr.reverse();
$(arr).appendTo(document.body);
这里可以看到在chrome中通过document.getElementsByTagName(&div&)返回的是一个HTMLCollection
而非官网上所说的NodeList,特意去找了NodeList和HTMLCollection的区别:HTMLCollection 对象和&NodeList 对象很相似,但前者可能既能用名称索引也能用数字索引,而后者只能用数字索引来访问(当然NodeList也是“array-like object”)
经过实验发现elems可以通过名称和数组来索引,结论:在chrome中通过document.getElementsByTagName(&div&)返回的是一个HTMLCollection
HTMLCollection可以通过elems.length获取它的长度,并且可以通过elems[0]这样的方式来访问其中的元素
像不像数组的访问方式?其实它就是就一个“Array-like object”,但是它并不是js的原生数组,所以无法访问array的native方法,比如(.pop()&and&.reverse())
而后面通过jQuery.makeArray(elems)转换就得到了原生的JS数组arr,接下来就可以使用array的native方法了!
将jQuery包裹的数组转换成原生Array
除了HTMLCollection,还可以转换什么呢?听说过jQuery包裹的数组这么一个玩意儿吗?
不过肯定接触过,比如通过$('div')得到一组div,这一组div就是一个jQuery包裹的数组
又比如,通过.map()函数得到的也是一个jQuery包裹的数组,也可以length来得到长度,并通过下标索引来访问,并且jQuery包裹的数组还可以使用jQuery提供的方法。
可以通过$.makeArray(obj)来转换成原生Array,比如最常见的在.map()函数中得到jQuery数组之后转换成原生array再通过join()得到结果
当然,将jQuery包裹的数组转换成原生数组的方法不止这一种,常见的还有.get()和.toArray()
将json对象转换成原生Array
这一种情况稍微复杂一点,因为json对象本不是“array-like object”,所以我们需要一种转换
还记得之前我们说的几种“array-like object”吗?它们都可以通过.length来得到长度,并且可以通过下标索引来访问,比如:fakeArr.length、fakeArr[0]
那么我们是否可以通过让json支持这样的方式来将它变成“array-like object”呢?
先设计一下:
要让json支持fakeArr.length,简单,只需要定义一个key为length的 键值对就OK了
而支持下标访问似乎也可以迎刃而解,另外键值对都使用数字来作为key就好了~
那么试试吧:
var fakeArray = {0: &张三&, 1: &李四&, 2:&朱六&, length:3};
var realArray = $.makeArray(fakeArray);
console.log(fakeArray)
console.log(realArray)
realArray.reverse();
console.log(realArray);
看到了吗?成功了!这里的realArray已经是js的原生array了,所以可以使用reverse()等native方法
需要注意的是,转换过程中length很重要,这个length也就是决定了转换后array的length
若将上述例子中的length指定为2,那么转换后的数组只有前2个元素,也就是[&张三&, &李四&]
若将上述例子中的length指定为4,那么转换后的数组并不会是我们希望的数组,而是类似于 new Array().push(fakeArray) 这样一个数组
js中只有var类型,不分到低时数组还是其他的类似java中的String,int等类型,如果js要获取ava中的数组就是用json吧.java代码中把集合转成json:@RequestMapping(value = &/slick/home&)public void homePage(HttpServletResponse response) throws IOException {String json =response.setContentType(&application/json&);PrintWriter out = response.getWriter();Gson gson = new GsonBuilder().serializeNulls().setDateFormat(DateFormat.LONG)
.setPrettyPrinting().setVersion(1.0).create();List&Integer& list = new ArrayList&Integer&();for (int i = 0; i & 10; i++) {list.add(i);}JSONArray ja = JSONArray.fromObject(mes);json = gson.toJson(ja.toString());out.print(json);}js中解析的代码:function tested(){
jQuery.getJSON(&${path}/slick/home?time=&+new Date().getTime(),
function(items){
var output = [];
output.push('&option value=&&&-请选择-&/option&');
jQuery.each(items, function(i,item){
output.push('&option value=&'+ item +'&&'+ item +'&/option&');
$('#'+nextUnit).html(output.join(''));
$('#'+nextUnit).css('display','');
});}希望可以帮到你.
jsList这个为你的arrylist&script type=&text/javascript&& function initPages() {
var codes = new
// 将JAVA中的数组转换成JS 的数组
if(jsList!=null)
for(int i=0;i&jsList.size();i++)
codes[&%=i%&]='&%=jsList.get(i)%&';
%&&/script&
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&
WEB前端教程最近更新5412人阅读
在做项目时,要向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字符串中的引号都会被解析成为&quot
var szJsonStr = '&s:property escapeJavaScript=&false& escape=&false& value=&sendCommandList& /&';
//把Json字符串转化为对象数组
var addVehicleArray = eval(szJsonStr);
在用的时候,就直接用addVehicleArray[i].vehicleT即可以了。。。。。。
==============================================================================================================================
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()方法。
import net.sf.json.JSONA
import net.sf.json.JSONO
public class JSONObjectSample {
& & // 创建JSONObject对象
& & private static JSONObject createJSONObject() {
& & & & JSONObject jsonObject = new JSONObject();
& & & & jsonObject.put(&username&, &huangwuyi&);
& & & & jsonObject.put(&sex&, &男&);
& & & & jsonObject.put(&QQ&, &&);
& & & & jsonObject.put(&Min.score&, new Integer(99));
& & & & jsonObject.put(&nickname&, &梦中心境&);
& & & & return jsonO
& & 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&:&&,&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&:&&,&Min.score&:99,&nickname&:&梦中心境&}
是否为数组:false, 是否为空:false, isNullObject:false
添加属性后的对象:{&username&:&huangwuyi&,&sex&:&男&,&QQ&:&&,&Min.score&:99,&nickname&:&梦中心境&,&address&:&福建省厦门市&}
{&username&:&huangwuyi&,&sex&:&男&,&QQ&:&&,&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&:&&,&Min.score&:99,&nickname&:&梦中心境&,&address&:&福建省厦门市&,&jsonArray&:[&this is a jsonArray value&,&another jsonArray value&]}
username==&huangwuyi
2.2.实例2.
import net.sf.json.JSONA
import net.sf.json.JSONO
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&}]}
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1026070次
积分:12049
积分:12049
排名:第1057名
原创:253篇
评论:151条
(1)(10)(4)(5)(12)(12)(6)(6)(7)(7)(5)(9)(10)(14)(13)(9)(9)(9)(17)(7)(12)(19)(53)

我要回帖

更多关于 钢琴琴键图对照表88键 的文章

 

随机推荐