JSON
JSON是一种的数据交换格式,是JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
在 JS 语言中,一切都是对象。所以,js中所有的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。在JSON中,主要有两种结构:对象和数组。
表示对象的方法
JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,但JSON对象的属性必须加双引号。若使用单引号或不使用引号造成序死化错误,从而无法生成JSON对象
var obj = {a: 'Hello', b: 'World'}; //这是一个对象
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串
表示数组的方法
和普通的 JS 数组一样,JSON 表示数组的方式也是使用方括号 []。
JSON和JS的互转
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
JSON字符串:
var str1 = ‘{ “name”:“cxh”, “sex”: “man” }’;
JSON对象:
var str2 = {“name”: “cxh”, “sex”: “man” };
JSON字符串转换为JSON对象
var obj =eval(’(’ + str + ‘)’);
或者
var obj= str.parseJSON();
或者
var obj= JSON.parse(str);
如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
JSON对象转换为JSON字符串
可以运用 toJSONString() 或者全局要领 JSON.stringify() 函数
例如:
var last=obj.toJSONString();
或者
var last=JSON.stringify(obj);
主要介绍一下stringify()函数和parse()函数
JSON.stringify(value,replace,space)
在这个函数中,一共可以有三个参数,value代表你要带入的对象,后两个参数可写可不写。replace代表你要指定输出的数据。
eg :var student=new object();
student.name=lin;
student.age=15;
此时若replace=name,就会直接输出name;
space代表元素之间的分隔符,由你自己定;
JSON.parse(value [, function])
参数
value:必需要有的参数。代表 一个JSON 字符串。
function:可有可无的。 代表一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:
· 如果 function 返回一个有效值,则成员值将替换为转换后的值。
· 如果function返回它接收的相同值,则不修改成员值。
· 如果 function返回 null 或 undefined,则删除成员。