JSON和XML一样,都是一种结构化的数据表示方式,JSON是一种轻量级的数据交换格式
JSON数据类型有三种
- 简单值:boolean 、string 、number、null、(JSON不支持undefined)【ps:true ‘hello’ 10 null 这些都是简单值】
- 对象:object
- 数组:array
下面我JSON的一些表示方法 并对比普通的表示方法 观察区别
//普通对象表示
var box = {
name:'zhangsan',
age:100
};
alert(box.name);
//JSON对象表示
{
"name":"zhangsan",
"age":100
}
//普通数组
var box = [100,'zhangsan',true];
//JSON数组 和普通数组相比,少了分号,少了变量赋值,而且本身应该是字符串表示
'[100,"zhangsan",true]'
//最常用的JSON结构
[
{
"title":"a",
"num":1
},
{
"title":"b",
"num":2
},
{
"title":"c",
"num":3
}
]
我们可以模拟JSON字符串的过程,把JSON加载进来 并赋值给JSON对象
var json = '[{"title":"a","num":1},{"title":"b","num":2}]';
JSON对象提供了两个方法,一个是将原生的javascript值转换为JSON字符串:stringify()
另一个是将JSON字符串转换为javascript值:parse()
var json = '[{"title":"a","num":1},{"title":"b","num":2}]';
var box = JSON.parse(json);
alert(box);
alert(box[0].title); //a
//第二个参数
var json = '[{"title":"a","num":1},{"title":"b","num":2}]';
var box = JSON.parse(json,function(key,value){
if(key=='title'){
return value+'同学';
}else{
return value;
}
});
alert(box[0].title);
var box =[
{
title:'a',
num:1
},
{
title:'b',
num:2
}
];
var json = JSON.stringify(box);
alert(json); //[{"title":"a","num":1},{"title":"b","num":2}]
//第二个参数
var box =[
{
title:'a',
num:1,
age:100
},
{
title:'b',
num:2,
age:200
}
];
// var json = JSON.stringify(box,['num','age']); //可以指定返回name和age属性
var json = JSON.stringify(box,function(key,value){ //JSON.parse还可以接收一个函数,用来转换解析出的属性
if(key=='title'){
return value+'同学';
}else{
return value;
}
})
alert(json);
//第三个参数 缩进
var box =[
{
title:'a',
num:1,
age:100
},
{
title:'b',
num:2,
age:200
}
];
var json = JSON.stringify(box,['num','age'],4);
alert(json);