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代码,实现将字符串转换为对象