js/jquery解析json和数组格式的方法详解 |
本文标签:jquery,json,js 在解析之前,我们必须弄清楚几个概念:数组,关联数组以及json之间有哪些区别和联系点? 一.概念介绍 语法: var a = [1, true, abc]; 具体操作查看API. ps:必须方括号隔开 。 2.关联数组 1.语法: 2.var ps:跟json格式几乎相同,但是json格式要求更加严格(里面的键值对必须使用双引号),但json只能作为一种格式标准,如果要对其进行操作必须转换成关联数组对象(obj) 。 2.简单操作 // 添加一个新键 newkey ,键值为 newval myhash[”newkey”] = “newval”; 2.删除Hash关联数组已有键值 // 删除一个键 newkey ,同时,该键值对应的 newval 也就消失了 3.遍历Hash关联数组 // 遍历整个hash 数组 4.获得值 方式1.myhash.key1 3.json {”key1″:”val1″, “key2″:”val2″ };//严格按照此格式,操作可依照关联数组的操作 二.前后台交互中几个关键点 2.至始至终服务器给客户端的数据都只是字符串,因此为了让其能够在js中对其进行必要的操作,可以通过eval()进行转换成js可执行的对象 。 三.具体的实例代码 复制代码 代码如下: <body> <input type="button" value="send ajax json" 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; alert(typeof obj);//string //var a=eval(obj);不解,不注释则会报错.. var strToobj=$.parseJSON(obj); alert(strToobj.name); alert(typeof strToobj)//obj var obja={name:techbirds,age:23,sex:male}; alert(typeof obja);//obj alert(obja[name]+":"+obja.age); delete obja[name]; }); } function sendAjaxByarray(){ $.post("array",{},function(data){ var str=data; alert(typeof str);//string alert(typeof eval(str));//object var obja=[1,2,3,4,5]; alert(typeof obja);//object }); } </script> 后台代码: 复制代码 代码如下: @Override protected void service(HttpServletRequest req, HttpServletResponse reps) throws ServletException, IOException { Map<String, Object> jsonMap=new HashMap<String, Object>(); jsonMap.put("name", "techbirds"); jsonMap.put("age", 23); jsonMap.put("sex", "male"); reps.getWriter().print(JSONObject.fromObject(jsonMap).toString()); reps.getWriter().flush(); reps.getWriter().close(); } 复制代码 代码如下: @Override protected void service(HttpServletRequest req, HttpServletResponse reps) throws ServletException, IOException { String array="[1,2,3,4,5,6]"; reps.getWriter().print(array); reps.getWriter().flush(); reps.getWriter().close(); } |