1.json简介
正如我们在java中,使用实体对象来存储一个实体数据一样,在javaScript中,我们也需要这样一种对象,来存储一个实体数据。而且,此种对象将来也可以作为前端与服务器端进行数据交互的载体。
在json出现之前,大家都用 XML 传递数据。XML 是一种纯文本格式,所以适合在网络上交换数据,但是 XML 格式比较复杂,解析困难。终于道格拉斯•克罗克福特(Douglas Crockford)发明了JSON 这种超轻量级的数据交换格式。
JSON(JavaScript Object Notation)
- 是一种轻量级的数据交换格式。
- 易于人阅读和编写,同时也易于机器解析和生成。
- JSON采用完全独立于语言的文本格式。
2.json数据格式语法
json对象形式:对象中包含若干属性,属性以 ”键值对“ 的形式书写。
let user = {userId:1,userName:'张三',userSex:'男'}console.log(user.userId);console.log(user.userName);console.log(user.userSex);
json数组形式:一个json数组中包含多个json对象。
let userArr = [{userId:1,userName:'张三',userSex:'男'},{userId:2,userName:'李四',userSex:'女'},{userId:3,userName:'王五',userSex:'男'}]//获取json数组中某一个json对象let user = userArr[0];console.log(user.userId);console.log(user.userName);console.log(user.userSex);//遍历json数组for(let i=0;i<userArr.length;i++){console.log(userArr[i].userId,userArr[i].userName,userArr[i].userSex);}
3.json与字符串之间的转换
javaScript中内置了一个JSON对象,可以用来进行json与字符串之间的转换。
json转换成字符串:使用JSON.stringify()
let user = {userId:1,userName:'张三',userSex:'男'}let str = JSON.stringify(user);console.log(str); //{"userId":1,"userName":"张三","userSex":"男"}
let userArr = [{userId:1,userName:'张三',userSex:'男'},{userId:2,userName:'李四',userSex:'女'},{userId:3,userName:'王五',userSex:'男'}]let str = JSON.stringify(userArr);console.log(str); //[{"userId":1,"userName":"张三","userSex":"男"}, ... ]
字符串转换成json:使用JSON.parse()
let user = {userId:1,userName:'张三',userSex:'男'}let str = JSON.stringify(user);let new_user = JSON.parse(str);console.log(new_user);
4、课后练习题
1、【填空题】 JSON格式语法要求:JSON 数据的书写格式是key:value的格式,JSON 对象在( ) 中书写,JSON 数组在( )中书写,所有key的数据类型是( )
2、【简答题】与xml格式数据相比,JSON格式数据有那些优势?
3、【编程题】已知如下JSON格式数据,请JavaScript代码写出遍历数据的代码
let depts = [{deptno:10,dname:'研发部',loc:'沈阳市'},{deptno:20,dname:'销售部',loc:'广州市'},{deptno:30,dname:'财务部',loc:'成都市'}]
4、【编程题】已知JavaScript对象user,请编写JavaScript代码,实现user对象转换为json格式的字符串
let dept = {deptno:40,dname:'总装车间',userSex:'深圳市'}
5、已知字符串str= ‘[{“empno”:7369,”ename”:”SMITH”,”JOB”:”BOOS”}, … ]’,请编写JavaScript代码,实现将字符串转换为对象
