创新互联JSON教程:js/jquery解析json和数组格式的方法详解

在解析之前,我们必须弄清楚几个概念:数组,关联数组以及JSON之间有哪些区别和联系点?

成都创新互联是一家专业提供银州企业网站建设,专注与成都网站建设、成都网站设计、HTML5、小程序制作等业务。10年已为银州众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

一、概念介绍

1、数组

语法: 
ECMAScript v3规定了数组直接量的语法,JavaScript 1.2和JScript 3.0实现了它。可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如:

var a = [1, true, 'abc'];

具体操作查看API.

ps:必须方括号隔开。

2、关联数组

(1)语法:

var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj

(2)var

myhash= {key1:”val1″, key2:”val2″ };//obj-也可以

ps:跟json格式几乎相同,但是json格式要求更加严格(里面的键值对必须使用双引号),但json只能作为一种格式标准,如果要对其进行操作必须转换成关联数组对象(obj)。

2、简单操作
(1)向Hash关联数组添加键值

// 添加一个新键 newkey ,键值为 newval
 myhash[”newkey”] = “newval”;

(2)删除Hash关联数组已有键值

// 删除一个键 newkey ,同时,该键值对应的 newval 也就消失了
 delete myhash[”newkey”];

 (3)遍历Hash关联数组

// 遍历整个hash 数组 
 for (key in myhash) {
 val = myhash[key];
 }
(4)获得值
 方式1.myhash.key1
 方式2.myhash.key2

3、json
格式要求:

{”key1″:”val1″, “key2″:”val2″ };//严格按照此格式,操作可依照关联数组的操作

二、前后台交互中几个关键点

1.当服务器发送的数据不是一条json,而是多条json时,则应当联系数组和关联数组来组装字符串

例如:var objs = [{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}];

2.至始至终服务器给客户端的数据都只是字符串,因此为了让其能够在js中对其进行必要的操作,可以通过eval()进行转换成js可执行的对象。
因此jQuey中提供的$.parseJSON()是有局限的,如果是上面1提到的这种情况则就必须使用eval()进行转换,然后再通过$.each(objs,function(i,o){...})进行操作

三、具体的实例代码

页面代码:

代码如下:


 
 
 

后台代码:

代码如下:

@Override
 protected void service(HttpServletRequest req, HttpServletResponse reps)
   throws ServletException, IOException {
  Map jsonMap=new HashMap();
  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();
 }

Jquery解析json数组字符串

一个json对象数组的json字符串:

var str=[{"Price":12,"Name":"aaa","Age",22},{"Price":24,"Name":"bbb","Age",33}];

在前台,使用jquery的parseJSON方法来进行解析,并用jquery的foreach的方法来进行解析,代码如下:

var jsonarray= $.parseJSON(str);
alert(jsonarray);
$.each(jsonarray, function (i, n)
{
    alert(n.Price);
}

对于不同版本的jquery来说,它们解析的json对象数组的字符串格式也不同(我使用了两个不同版本的jquery,就遇到了这样的问题),如果上述代码无法解析,就用eval函数来包裹一下,代码如下:

var jsonarray= $.parseJSON(str);
$.each(eval("(" + jsonarray+ ")"), function (i, n) {
    alert(n.Price);
}

在解析json对象数组字符串的过程中,也可以使用alert来弹出$.parseJSON(str)解析后的结果,如果弹出的对话框中显示object,则说明解析成功了,可以通过对象.属性名获得到对应属性的值,如果弹出的不是object,则用eval()来进行包装一下形成对象,再获得对应属性的值。

新闻标题:创新互联JSON教程:js/jquery解析json和数组格式的方法详解
分享URL:http://www.36103.cn/qtweb/news45/34595.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联