JSON的使用场景及注意事项介绍
JSON的2种结构形式
键值对形式
{
"person": {
"name": "pig",
"age": "18",
"sex": "man",
"hometown": {
"province": "江西省",
"city": "抚州市",
"county": "崇仁县"
}
}
}
- 这种结构的JSON数据规则是:一个无序的“‘名称/值’对”集合。一个对象以 {左括号 开始, }右括号 结束。每个“名称”后跟一个 :冒号 ;“‘名称/值’ 对”之间使用 ,逗号 分隔
数组形式
["pig", 18, "man", "江西省抚州市崇仁县"]
- 数组形式的JSON数据就是值(value)的有序集合。一个数组以 [左中括号 开始, ]右中括号 结束。值之间使用 ,逗号 分隔
JOSN的6种数据类型
- string:字符串,必须要用双引号引起来
- number:数值,与JavaScript的number一致,整数(不使用小数点或指数计数法)最多为 15 位。小数的最大位数是 17
- object:JavaScript的对象形式,{ key:value }表示方式,可嵌套
- array:数组,JavaScript的Array表示方式[ value ],可嵌套
- true/false:布尔类型,JavaScript的boolean类型
- null:空值,JavaScript的null
JSON使用场景
接口返回数据
JSON用的最多的地方莫过于Web了,现在的数据接口基本上都是返回的JSON,具体细化的场景有
- Ajxa异步访问数据
- RPC远程调用
- 前后端分离后端返回的数据
- 开放API,如百度、高德等一些开放接口
- 企业间合作接口
序列化
- 程序在运行时所有的变量都是保存在内存当中的,如果出现程序重启或者机器宕机的情况,那这些数据就丢失了。有些内存中的数据是需要保存起来供下次程序或者其他程序使用
- 保存内存中的数据要么保存在数据库,要么保存直接到文件中,而将内存中的数据变成可保存或可传输的数据的过程叫做序列化
- 正常的序列化是将编程语言中的对象直接转成可保存或可传输的,这样会保存对象的类型信息,而JSON序列化则不会保留对象类型
生成Token
- Token的方式做登录身份校验,然后通过Token去取Redis中的缓存的用户信息,随着之后JWT的出现,校验方式更加简单便捷化,无需通过Redis缓存,而是直接根据Token取出保存的用户信息,以及对Token可用性校验,单点登录更为简单
配置文件
- JSON并不合适做配置文件,因为它不能写注释、作为配置文件的可读性差等原因