1. json数据格式?
1)JSON全称是 javascript Object Notation
2)通过键值对存储数据;
3)JSON不是javascript 的子集;
-JSON可以包含U+2028 和 U+2029 ,JS字符串不能;
2. JSON数据格式的特点?
1)以{起始,}结束的键值对或数组;
2)双引号包裹键名;
3)JSON字符串中不可添加注释;
例如:
let data = '{
"data":{
"name":"petter",
"phonenumber":12344555,
"career":{
"componany":"imooc",
"title":"frontend engeneer"
},
"project":["home","page"]
}
}'
3. JSON.parse(data); //使用此方法,转化字符串,如果json数据格式正确,则返回json数据,如果json数据格式有误,则此方法抛出异常;
4.JS中如何使用JSON数据?
1)JSON数据本质上是一个字符串;
2)可以通过eval、JSON.parse等方式转化为对象;
3)注意使用try catch;(在转化的过程中可能会出现异常,要使用try catch进行抛出异常)
5.JSON对象的方法?
1)JSON对象仅有两个方法parse和stringify;
parse方法案例:
var str = '{"data":1}';
console.log(JSON.parse(str)); //===> object {data:1}
console.log(JSON.parse('null')); //===> null
console.log(JSON.parse('"abc"')); //===> string abc
console.log(JSON.parse('[1,2,3,]')); //===> 抛出异常 throw error 因为不能加尾逗号;
第二个参数的作用:
var str = '{"data":1,"a":{"b":5}}';
console.log(JSON.parse(str,function(k,v){ //解析函数,接收两个函数,属性名和属性值
console.log(k);
if(k === ''){
return v;
}
if(typeof v === 'number'){
return v*100;
}
return v;
}))
eval方法:会把传入的参数作为js语句执行;而JSON.parse只是把字符串转化为对象;
2)parse方法和stringify方法调用时注意要用try catch来处理抛出异常;
3)IE8也支持json对象,兼容性很好;
4)sringify方法的:
1> 将值或者对象转化为JSON数据格式;
2> 第二个参数接收一个替换函数;
3> 第三个参数接收一个缩进格式;
例如:
var str = '{"data":1,"a":{"b":5}}';
console.log(JSON.parse(str,function(k,v){ //替换函数,接收两个函数,属性名和属性值
console.log(k);
if(v === 5){
return 10;
}
return v;
},10)) //第三个参数为缩进的空格数,最多为10 也可以使用符号来取代;如:'---';