内容
- 理解JSON 语法
- 解析 JSON
- 序列化 JSON
关于JSON
- json(javascript object notation)javascript对象表示法。
- 一种数据交换格式。
语法
- 简单值:与JavaScript相同语法,可以在JSON中表示字符串、数值、布尔值、null。不能表示undefined。
- 对象:一种复杂数据类型,键值对可以是简单值和复杂数据类型值。
- 数组:一种复杂数据类型。
简单值
JSON字符串表示
"hello world"
与js字符串的区别是必须使用双引号。
JSON更多用来表示更复杂的数据结构,简单值只是整个数据结构的一部分
对象
JavaScript对象字面量:
var person = {
name: "wayliu",
age: 29
}
JSON:
{
"name": "wayliu",
"age": 18,
"school": {
"name": "zdxh",
"location": "china"
}
}
1.JSON没有变量声明
2.末尾没有分号
3.对象的属性必须加双引号
数组
[
{
"name": "wayliu",
"age": 18,
"school": {
"name": "zdxh",
"location": "china"
}
},
{
"name": "liuguowei",
"age": 18,
"school": {
"name": "zdxh",
"location": "dongguan"
}
}
]
解析与序列化
- 全局JSON对象,此对象有两个方法,stringfy()和parse()
- stringfy():把JavaScript对象序列化为JSON字符串。
- parse():把JSON字符串解析为原生JavaScript值。
// js对象字面量
var person = {
name: "wayliu",
age: 29
}
//使用JSON.stringify()序列化为JSON
var jsonText = JSON.stringify(person)
jsonText // "{"name":"wayliu","age":29}"
typeof jsonText // "string"
**注意得到的是JSON字符串 “{“name”:“wayliu”,“age”:29}”,由双引号包裹
**
//使用JSON.parse()把json字符串解析为JavaScript值
JSON.parse(jsonText) // {name: "wayliu", age: 29}
typeof JSON.parse(jsonText) // "object"