标签:
JSON 的表示主要有三种类型
1)简单。简单就是像JavaScript语法一样,可以是字符串、数值、null、布尔值,但是不能是undefined。
2)对象。表示一组有序的键值对,每一组键值对可以是简单、复杂的数据类型。
3)数组。表示一组有序值的列表。数组的值可以是简单、对象、或数组。
简单值
JSON形式的简单值:数值,如:2。字符串:“hello world”。字符串必须用双引号。
JSON字符串写法,如:var strJson=‘2’;转化为JSON ,var num=JSON.parse(strJson);
在实际应用中更实用的是对象形式
对象
JSON对象以JavaScript对象字面量的对比
var person={
name:‘jenny‘,
age:26
}
JSON对象
{
“name":"jenny",
"age:26
}
属性值可以是简单值,也可以是复杂类型值,
如:{
”name":"jenny",
"age":26,
“school":{
"name":"xxxx",
"Adress":"xxxxx"
}
}
注意:属性名一样,必须是属于不同对象中
数组
JavaScript数组字面量:var arr=[1,2,"a","b"];
JSON数组:[1,2,"a","b"];
较复杂的JSON数组,常用的形式是在数组中放入对象。
如:[
{
"name":"zhangsan",
"age":12,
student:true;
authors:[
"one",1,false
]
},{
"name":"lisi",
"age":34,
student:false,
authors:[
"tow",2,true
]
}
]
JSON获取属性值与JavaScript类型。
JSON对象
json对象有两个方法:stringify()和parse()。
stringify():把JavaScript对象序列化为Json字符串
parse():把json字符串解析为JavaScript对象。
stringify()可以传递两个参数,第一个参数是一个过滤器,可以是一个数组。也可以是一个函数。第二个参数是一个选项,是否在json字符串中保留缩进。
1.过滤器
参数为数组形式: 如:var obj={
"name":"张三",
"age":25,
"school":[
1,2,3
]
}
var textJson=JSON.stringify(obj,["name","age"]);
说明:支队name和age属性进行序列化。得到的结果:{”name":"张三","age":25}
参数为函数形式:函数接受连个参数,分别是属性名和属性值,根据属性名,对要序列的的属性进行处理。返回了undefined,相应的属性会被忽略。
如:上面对象
var textJsonJSON.stringify(obj,function(key,value){
switch(key){
case "name" :return "李四";
case "age":return 34;
case "school" value.join(",");
default: return value;
}
});
返回的结果是{”name":"李四","age":34,"school":"1,2,3"}
2.缩进
var text=JSON.stringify(obj,null,4);//缩进4个空格,缩进是为了提高可读性。最大缩进空格为10,大于10将视为10个。
3.toJSON方法
有时候,JSON.stringify()不能满足对某些对象进行自定义序列化的需求。就可以通过调用toSON()方法。返回其自身的JSON数据格式。
当一个对象中存在toJSON方法时,则在调用JSON.stringify()时,将按toJSON的结果来序列化。
说明:对象被序列化的执行顺序
1)toJSON方法
2)第二个参数(数组或函数)
3)第三个参数执行格式化。
parse()解析
parse()也可接受一个参数,该参数是一个函数,与stringify()的过滤类似,
如: var textJson=‘{"name";"张三","age":23}‘;
var obj=JSON.parse(textJson,function(key,value){
switch(key){
case "name": return "李四";
case "age" return: 34;
default : return value;
}
});
得到的obj对象为 obj={"name":"李四”,"age":34},第二个参数将篡改JSON字符串的属性值。
标签:
原文地址:http://www.cnblogs.com/webuserlast/p/4926702.html