js解析java json格式数据_JS中涉及到的JSON以及JSON数据的解析

JSON是什么?

定义

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,同样也是一种常用的数据交换格式,与XML类似。它采用键值对的方式来组织。

格式

JSON数据的书写格式是:名称/值对 如:{name:value,...}

逗号相隔的为同级元素,还可嵌套包含多层。

如下:

{"list1":[{"name":"A","sex":"female"},{"name":"B","sex":"female"},...],"list2":[{"name":"X","sex":"male"},{"name":"Y","sex":"male"},...],...}

两种结构

从上面的代码就可以看出 list1为下面{"name":"A","sex":"female"},{"name":"B","sex":"female"},...的父层(list2同理)所以说,json既可以表达一个简单的key/value,也可以表达一个复杂的Map或List。

简单说,json就是由javascript中的对象和数组组合而成,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。

1.数字(整数或浮点数)

2.字符串(双引号中)

3.逻辑值(true 或 false)

4.数组(在方括号中)

5.对象(在花括号中)

6.null

优点

1.易于人们阅读和编写,同时也易于机器解析和生成;

2.是独立于语言的,也就是说不管什么语言,都可以解析json,只需按json规则来就好;

3.json相对于XML来说,长度小,可大大减小带宽(网络传输中);

4.json读写速度比XML快。

JSON数据的解析

对于json的解析有两种方式:eval() 和 JSON.parse()

var jsonobj = eval('('+jsondata+')');

var jsonobj = JSON.parse(jsondata);

一般,在代码中使用eval()是很危险的!特别是用其执行第三方的JSON数据(包含恶意代码)时,尽可能使用JSON.parse()解析,该方法还可以捕捉JSON中的语法错误。

例如:

var jsondata = {

"staff":[

{"name":"A","age":alert(123)},

{"name":"B","age":30},

{"name":"C","age":35}

]

}

var jsonobj = eval('('+jsondata+')'); //会执行alert(123)

alert(jsonobj.staff[0].name);//再弹出"A"

eval()并不会判断js中的字符串是否合法,而且还会执行其中的js代码。所以说无论何时在js中使用eval()都危险。

var jsondata = {

"staff":[

{"name":"A","age":alert(123)},

{"name":"B","age":30},

{"name":"C","age":35}

]

}

var jsonobj = JSON.parse(jsondata); //会在控制台抛出错误--->字符串不合法(语法错误)

alert(jsonobj.staff[0].name);//不执行

实际中使用JSON.parse()来解析json数据很适合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值