一、JSON是什么?
一般情况下,我们把JSON数据结构保存到一个文本文件中,然后去加载它,得到数据字符串。
四、解析和序列化
为了安全起见,我们最好使用JSON对象的解析和序列化的方法:
1、原生JS值-------JSON字符串:stringify();
在序列化JSON的过程中,stringify()方法还提供第二个参数。第一个参数可以是一个数组,也可以是一个函数,用于过滤结果。第二个参数则表示是否在JSON字符串中保留缩进。
2、JSON字符串-----原生JS值:parse();
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,主要用于传送数据。JSON采用完全独立于语言的文本格式,而不仅仅是JavaScript独有的数据格式。其他很多语言都可以对JSON进行解析和序列化。
Json语法是JavaScript对象表示语法的子集,有如下特点:
①数据在键值对中
②数据由逗号分隔
③花括号保存对象
④方括号保存数组
例如:
{"people":[
{"name":"zhao","age":21,"sex":"男"},
{"name":"qian","age":22,"sex":"女"},
{"name":"sun","age":23,"sex":"男"}
]}
一般情况下,我们把JSON数据结构保存到一个文本文件中,然后去加载它,得到数据字符串。
//demo文件(后缀名为.json)
var json=load('demo.json');
alert(json);
//json文件
var json='[{"title":"a","num":1},{"title":"b","num":2}]';
四、解析和序列化
如果是载入的JSON文件,我们需要对其进行使用,那么就必须对JSON字符串解析成原生的JavaScript值。当然,如果是原生的JavaScript对象或字符串也可以序列化为JSON字符串。
早期使用eval()函数,但是它会执行一些恶意代码,Eval()函数是不安全的。 var box='[{"title":"a","num":1},{"title":"b","num":2}]';
alert(box);//json字符串
var json=eval(box);//使用eval函数解析
alert(json); //得到JavaScript原生值
为了安全起见,我们最好使用JSON对象的解析和序列化的方法:
1、原生JS值-------JSON字符串:stringify();
var box=[{name:'a',age:1},{name:'b',age:2}]; //原生JavaScript
var json=JSON.stringify(box); //转换成JSON字符串
alert(json);
在序列化JSON的过程中,stringify()方法还提供第二个参数。第一个参数可以是一个数组,也可以是一个函数,用于过滤结果。第二个参数则表示是否在JSON字符串中保留缩进。
2、JSON字符串-----原生JS值:parse();
var box='[{"name":"a","age":1},{"name":"b","age":2}]'; //key value中的value要用双引号
alert(box);
var json=JSON.parse(box);
alert(json);
五、总结:
最初接触到JSON,是在李炎恢老师的JavaScript视频提到的,当时仅仅是匆匆掠过,没有留下任何痕迹,现在在ITOO项目中又遇到了JSON,重新回过头来学习,会有不一样的体验。学习就像牛吃草一样,是需要一次一次的反刍才能彻底消化,吸收精华。