一、JSON对象及JSON数组
1. JSON对象
特点:
a. JSON对象属性名,要带双引号
b. JSON没有变量
JSON对象的表达式有两种:
a.表达式
var object ={
"username": 'zhangsan',
"age": 20,
"sex": 'nan'
};
b.对象字面量
字面量后不需要分好 “;”
{
"username": 'zhangsan',
"age": 20,
"sex": 'nan'
}
2. JSON 数组
JSON数组中存的是JSON对象;
JSON数组也是数组,拥有数组所有方法;
var data = [{ //JSON对象
"username": 'zhangsan',
"age": 20,
"sex": 'nan'
}, {
"username": 'lisi',
"age": 18,
"sex": 'nv'
}, {
"username": 'wangwu',
"age": 12,
"sex": 'nv'
}, {
"username": 'zhaoliu',
"age": 18,
"sex": 'nv'
}];
二、JSON对象转换
1. JSON 对象转JSON字符串
返回的是新JSON字符串,不改变原来的JSON对象
方法:
JSON.stringify();
示例:
var news ={
"name":"zhangsan",
"age":20
};
console.log(JSON.stringify(news)); //'{"name":"zhangsan","age":20}'
console.log(news); //还是原来JSON对象
2. JSON字符串转JSON对象
返回新的json对象,不改变原json字符串
JSON字符串特点是:外面单引号,里面双引号
方法:
JSON.parse()
示例:
var str = '{"name":"zhangsan","age":20}'; //JSON字符串
console.log(JSON.parse(str)); // {name:"zhangsan",age:20}
console.log(str); //原json字符串不受影响 '{"name":"zhangsan","age":20}'
ie兼容写法:
if (typeof JSON.parse != 'function') {
// eval() 把字符串当成JS来执行
//当浏览器小于等于IE8时没有JSON方法,用eval代替
obj = eval('(' + str + ')');
} else {
obj = JSON.parse(str);
}