JSON(JavaScript Object Notation)是一种通用的、轻量级的数据交换格式,而不是编程语言。由于 XML 过于冗余和啰嗦, 因此,使用 JSON 代替 XML 进行网络传输。
一个 JSON 对象可以被储存在它自己的文件中,这基本上就是一个文本文件,扩展名为 .json
。
JSON语法
基本上 JSON 对象就是基于 JavaScript 对象,因此,可以把 JavaScript 对象写入 JSON 数据,JSON 可以将JavaScript对象分为三类:
- 简单值:字符串、数值、布尔值和
null
。undefined
除外。 - 对象:复杂的数据类型,对象表示有序键/值对。
- 数组:复杂的数据类型,数组表示带有索引的有序列表,可以通过索引访问数组中的值。
而在JSON中,使用如下语法规则:
- 数据在键/值对中,且由逗号分隔。
- 花括号保存对象,方括号保存数组。
{
"code": 1,
"status": true,
"msg": "Http Request Success",
"data": [
{
“id”: 2011101010,
"name": "小赵",
"age": 29,
"sex": "男",
"birthday": “1992-04-09”,
"address": [
"北京市通州区万达广场",
"天津市",
"河北省邯郸市"
]
},
{
“id”: 2011101011,
"name": "小钱",
"age": 27,
"sex": "男",
"birthday": “1994-05-01”,
"address": [
"北京市通州区万达广场",
"天津市",
"河北省邯郸市"
]
},
{
“id”: 2011101013,
"name": "小玲",
"age": 28,
"sex": "女",
"birthday": “1993-09-26”,
"address": [
"北京市通州区万达广场",
"天津市",
"河北省邯郸市"
]
}
]
}
注意:JSON 简单值中的字符串必须使用双引号标记,因为使用单引号会导致语法错误。
序列化与解析
ECMAScipt 5 添加了用于JSON解析与序列化的 JSON
对象,该对象只包含两个方法:
JSON.stringify()
:用于将JavaScript简单值、对象或数组序列化为JSON字符串。JSON.parse()
:用于将JSON格式的字符串解析为原生JavaScript值。
下面详细介绍这两种方法。
序列化
JSON.stringify()
方法将一个JavaScript简单值、对象或数组转换为JSON字符串。如果指定一个 replacer
函数,则可以选择性地替换掉,或者指定的 replacer
的数组,则可选择性地仅包含数组指定的属性。
stringify(value, replacer, space): string;
value
:将要序列化成一个 JSON 字符串的值。replacer
:可选参数,用于转换结果的函数或数组。space
:可