文章目录
前言
参考红宝书JavaScript高级程序设计第三版
一、JSON是什么?
JSON是JavaScript的一个严格的子集,利用了JavaScript中的一些模式来表示结构化数据。
需要注意的是JSON不是一种编程语言
二、JSON语法
JSON语法可以表示以下三种类型的值
1.简单值
语法与JavaScript相同。可以在JSON中表示字符串、数值、布尔值、null、对象。但并不支持undefined。
"HELLOW WORLD"
//一个JSON简单值,必须使用双引号
2.对象
表示的是一组有序的键值对,每个键值对中的值可以是简单值,也可以是复杂数据类型的值
要注意的是必须与JavaScript的对象区分开
//1)这是一个JavaScript对象
let cat = {
name: "vivi",
age: 2
};
//2)这是一个JSON对象
{
"name": "vivi",
"age": 2,
"color": {
"head": "white",
"leg": "black"
}
}
我们可以看到区别:
1)末尾分号:JavaScript有,JSON没有
2)对象属性值双引号:JavaScript可以没有,JSON必须有
3.数组
JSON数组采用的就是JavaScript中的数组字面量形式
//1)这是一个JavaScript数组
let a = [1,"a",false];
//2)这是一个JSON
[1,"a",false]
注意JSON数组也没有变量和分号
4.组合对象和数组
也可以算是数组之一,用法形式多样
//这是一个JSON组合对象和数组
[
{
"name": "vivi",
"age": 2
},
{
"name": "cici",
"age": 3
}
]
三、JSON和JavaScript对象相互转化
JSON和JavaScript对象有两个方法相互转化。
1.JSON.stringify()
将对象序列化为JSON
let cat = {
name: "vivi",
age: 2
};
let catJSON = JSON.stringify(cat);
console.log(catJSON);
//{"name":"vivi","age":2}
2.JSON.parse()
将JSON字符串解析为原生JavaScript值
let cat = {
name: "vivi",
age: 2
};
let catJSON = JSON.stringify(cat);
console.log(catJSON);
//{"name":"vivi","age":2} JSON.stringify转为JSON
let catobj = JSON.parse(catJSON);
console.log(catobj);
//{name: "vivi", age: 2} JSON.parse转为JavaScript
总结
个人学习笔记,每天进步多一点