JSON 入门
什么是 JSON
JSON 是一种纯字符串形式的数据,是一种开放的、轻量级的数据交换格式,广泛地应用在网络中进行数据传输。
JSON 中只有两种方式表示数据:
- Object:键值对的集合,用
{ }
定义,以key: value
的形式表示键值对,键值对间用,
分隔 - Array:值的有序集合,用
[ ]
定义,值之间用,
分隔
JSON 文件通常存储在 .json
文件中,实际上就是一种文本文件。
JSON 的用途
在 Web 应用中使用最广泛,许多数据接口都是采用 JSON 格式进行的:
- 使用 Ajax 异步加载的数据
- RPC 远程调用的数据
- 前后端分离,后端返回的数据
- 一些开放 API 接口,例如百度的一些开放接口
序列化:在真正使用 JSON 时,要面临的一个问题是各种不同的编程语言,其在内存中的对象模型可能是不同的。所以同一个 JSON 数据,在不同的编程语言中,实际上可能是不一样的。所以需要一种机制,能够让 JSON 完成跨语言、跨平台。
序列化是将内存中的对象(变量)转化成 JSON 格式的文件,当其他编程语言或平台需要使用该数据时,就会调用自身语言平台的反序列化功能(某些库),读取 JSON 数据文件至内存,转化成该编程语言所对应的对象模型,才能够真正的使用。
另外 JSON 还可以作为某些程序的配置文件,例如 VScode
JSON 语法
键:以字符串形式定义,需要使用 "
括起来
值:可以是
- 数字:整数或浮点数
- 数组:类型可以不一样
- 对象:键值对的集合
- 字符串
- 布尔值
null
不同的键值对需要以 ,
分开
示例:可以进行各种嵌套
{
"integer": 1,
"float": 1.1,
"string": "Hello World!",
"bool": true,
"array": [
1,
"string",
false,
["peter", "bob"],
{"name": "Anna", "age": 16}
],
"object":{
"name": "Anna",
"age": 16
}
}
JSON5
由于官方的 JSON 存在一些限制,使得在实际的使用中并不那么方便,开源社区共同推出了一种非官方的标准 JSON5,也得到了广泛的使用。
JSON 的限制:
- 键需要用双引号括起来,字符串不能用单引号
- 不能用八进制、十六进制表示数字
- 最后一个键值对或值不能有逗号
- 没有注释
- 字符串不能换行
JSON5 的功能:
- 最后一个键值对或值可以添加逗号
- 字符串可以使用单引号定义,可以换行
- 可以定义十六进制的数字
- 数字可以包含前导或后导的小数点,可以添加加、减号来表示正负
- 可以使用
//
定义单行注释,使用/* ... */
定义多行注释
JSON5 示例:相比 JSON 更加清爽一些,当然更重要的是使用起来更方便
{
integer: 1,
float: 1.1,
string: 'Hello World!',
bool: true,
array:[
1,
'string',
false,
['peter', 'bob'],
{name: 'Anna', age: 16}
],
object:{
name: 'Anna',
age: 16
}
}
评论 |
0条评论