json学习心得

作者:Jasmine - 2016年06月30日

关于JSON的几点概念 

1.JSON(JavaScript Object Notation 即 JavaScript对象表示法) 

2.JSON类似于XML,都是用于从储存和交换文本信息的语法。

3.JSON采用键值对的方式来阻止。

4.JSON是独立于语言的,不管什么语言,只要遵循JSON的规则,都可以解析JSON


JSON与XML的比较 

1.JSON的长度较XML比起来更加短小 

2.JSON在网络上的传输速度更加快 

3.JSON可以被JS的内建方法直接进行解析,很方便地转换成JS对象。而JS解析XML的话就十分复杂。


JSON的与法规则

1.JSON的基本书写规则是:名称/值对 比如 "person":"小明" 

2.JSON的值可以是一下的类型:


数字(整数或者浮点数) 字符串(双引号中) 逻辑值(true或false) 数组(在方括号中) 对象(在花括号中) null 一个JSON对象的示例:

{ "staff":[ {“name”:“小李”} {“name”:“小牛”} {“name”:“小黄”} ] }

表示一个json对象叫staff,它的值是一个对象数组,数组元素又是三个json对象。

JSON解析

1.采用JSON.parse()方法

var jsondata ='{"staff":[{"name":"小李","height":"180cm"}, 
{"name":"小赖","age":"165cm"}, 
{"name":"小牛","height":"185cm"} ] }';
 var jsonobj=JSON.parse(jsondata);
  alert(jsonobj.staff[0].name);

上面例子,浏览器提醒“小李” 

2、采用eval()方法解析(十分危险的一种方法) 

eval()方法不管值的格式正确与否,JSON中里包涵的一些JS方法会被直接执行容易被插入恶意代码

var jsondata ='{"staff":[{"name":"小李","height":alert(哈哈哈,我被执行了)}, 
{"name":"小赖","age":"165cm"}, {"name":"小牛","height":"185cm"} ] }';
 var jsonobj=JSON.parse(jsondata); 
 alert(jsonobj.staff[0].name);

如上代码,浏览器先弹出"哈哈哈,我被执行了",然后再弹出小李。 如果alert()部分是恶意代码,就会出现麻烦的事情了。(无论何时使用eval()方法其实都是不安全的)



本文作者: Jasmine

本文链接: https://www.jianbaizhan.com/article/458

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!