本文主要详细介绍了js/jquery解析json和数组格式的方法,有需要的朋友可以过来参考一下,希望对你有所帮助。
在解析之前,我们要搞清楚几个概念:数组、关联数组和json有什么区别和联系?
一.概念介绍1.数组
语法:ECMAScript v3规定了数组直接量的语法,JavaScript 1.2和JScript 3.0实现了。您可以将逗号分隔的表达式列表放在方括号中,以创建和初始化数组。这些表达式的值将成为数组元素。例如:
var a=[1,true,' ABC '];
具体操作见API。
Ps:必须用方括号隔开。
2.关联数组
1.语法:var my hash={ " key 1 ": val 1 ", key 2 ": val 2 "};//obj
2 . varmyhash={ key 1:" val 1 ", key 2:" val 2 "};//obj——那也行。
Ps:和json格式差不多,但是json格式更严格(里面的键值对必须用双引号),但是json只能作为格式标准,要操作的话必须转换成关联数组对象(objs)。
2.简单操作1.将键值添加到哈希关联数组
//添加一个newkey,newkey,其键值为newval
my hash[" new key "]=" new val ";
2.删除哈希关联数组的现有键值。
//删除一个key newkey,同时这个key对应的newval也会消失。删除我的哈希[" new key "];
3.遍历散列关联数组
//遍历整个hash数组for(key in my hash){ val=my hash[key];}
4.获取值
1.myhash.key1模式2.myhash.key2
3.json格式要求:
{ " key 1 ": val 1 "," key 2 ": val 2 "};//严格按照这个格式,操作可以遵循关联数组的操作。
二.前后台交互中几个关键点1.当服务器发送的数据不是一个json,而是多个json时,要联系数组和关联数组组装字符串例如:varobjs=[{ID: 1,name:' n _ 1'},{ID: 2,name:' n _ 2 ' }];
2.从始至终,从服务器到客户端的数据都只是字符串,所以为了使在js中对其进行必要的操作成为可能,可以通过eval()将其转换为js可执行对象。因此,美元。jQuey中提供的parseJSON()是有限的。如果是上面1中提到的这种情况,就必须使用eval()进行转换,然后通过$进行操作。每个(对象,函数(I,o){.}).
三.具体的实例代码页面代码:复制代码如下:body input type=' button ' value=' sendajaxjson ' onclick=' sendajaxbyjson();'/input type=' button ' value=' send Ajax array ' onclick=' sendAjaxByarray();'//body script type=' text/JavaScript ' function sendAjaxByjson(){ $。post('json ',{},function(data){ var obj=data;警报(对象类型);//string//var a=eval(obj);不懂,不评论就报错.var strToobj=$。parse JSON(obj);alert(strtoobj . name);alert(type of strToobj)//obj var obja={ ' name ':' tech birds ',' age':'23 ',' sex ':' male ' };警报(obja类型);//obj alert(obja[' name ']':' obja . age);删除obja[' name '];});}函数sendAjaxByarray(){$。post('array ',{},function(data){ var str=data;警报(字符串类型);//string alert(type of eval(str));//objectvar obja=[1,2,3,4,5];警报(obja类型);//对象
});}/脚本后台代码:复制代码如下:@ override protected void service(http servlet req req,http servlet response reps)抛出servlet异常,ioexception {mapstring,objectjsonmap=newhashmapstring,object();jsonMap.put('name ',' tech birds ');jsonMap.put('age ',23);jsonMap.put('sex ',' male ');reps.getWriter()。print(JSON object . from object(JSON map))。toString());reps.getWriter()。flush();reps.getWriter()。close();
}复制代码如下:@ override protected void service(http servlet req req,http servlet response reps)抛出servlet异常,ioexception {string array=' [1,2,3,4,5,6]';reps.getWriter()。打印(数组);reps.getWriter()。flush();reps.getWriter()。close();
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。