JSON是什么? {#Lfsie}
- JSON = JavaScript Object Notation
- JSON是一种轻量级的数据交换格式,其为字符串类型
- JSON 的网络媒体类型是 application/json。
为什么要序列化和反序列化 {#iIJ8X}
- 目的是为了对象可以跨平台存储和网络传输,而网络传输的方式就是IO,而IO支持的数据格式就是字节数组
- 单方面将对线转成字节数组还不够,传输过去后还要约束转换规则将字节数组转换为对象
与 XML 相同之处 {#QNaba}
- JSON 是纯文本
- JSON 具有"自我描述性"(人类可读)
- JSON 具有层级结构(值中存在值)
- JSON 可通过 JavaScript 进行解析
- JSON 数据可使用 AJAX 进行传输
与 XML 不同之处 {#ISbFI}
- 没有结束标签
- 更短
- 读写的速度更快
- 能够使用内建的 JavaScript eval() 方法进行解析
- 使用数组
- 不使用保留字
JSON 语法规则 {#ilI9G}
JSON 语法是 JavaScript 对象表示法语法的子集。{#ue91add1c}
- 数据在名称/值对中 "firstName" = "Lincol"
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 值 {#Hr9lA}
JSON 值可以是:{#u9a60269f}
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON 对象 {#hrMZ6}
{ "name":"w3cschool", "alexa":8000, "site":null }
{#HFkYy}
JSON 对象使用在大括号({})中书写,对象可以包含多个 key/value(键/值)对。{#u26ec0a8e}
其中:{#uc495d0be}
- key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
- key 和 value 中使用冒号(:)分割。
- 每个 key/value 对使用逗号(,)分割。