网站服务器维护方案规范网站维护 建设 管理
目录
一、JSON的基本概念
二、JSON的特点
三、JSON的语法结构(两个)
1.键值对集合(对象)
2.值的有序列表(数组)
四、JSON支持的数据类型
五、JSON在客户端和服务器交互流程
1. 客户端发起请求前的准备
2. 网络传输与服务器接收
3.服务器处理JSON数据
4.服务器返回响应
5. 客户端解析响应
6.代码实例——Linux平台使用JSON
一、JSON的基本概念
JSON 是一种轻量级的数据交换格式,以纯文本形式存储和传输数据。
二、JSON的特点
(1)独立于编程语言,可被多种语言解析。
(2)采用键值对结构。
(3)适用于客户端与服务器之间的数据交互。
(4)JSON本身不提供任何方法,只是定义数据的格式。
三、JSON的语法结构(两个)
1.键值对集合(对象)
(1)用{}
包裹,键和值用冒号(:)分隔,多个键值对用逗号(,)分隔。
(2)键必须是字符串,值可以是字符串、数字、布尔值、数组、对象或 null。
2.值的有序列表(数组)
用[]
包裹,元素用逗号(,)分隔,元素可以是任意合法 JSON 值。
四、JSON支持的数据类型
1.字符串(String):必须用双引号 " "
包围,例如 "hello"
。
2.数字(Number):整数或浮点数(不支持八进制或者十六进制),例如 42
,3.14
。
3.布尔值(Boolean):true
或 false
。必须是小写
4.空值(null):null
。
5.对象(Object):键值对集合。
6.数组(Array):值的序列。
五、JSON在客户端和服务器交互流程
1. 客户端发起请求前的准备
(1)进行数据的构造(创键JSON对象):根据具体的要求创建数据结构。
(2)序列化:将数据结构转换为 JSON 字符串
(3)请求封装:将 JSON 字符串放入 HTTP 请求体,并设置请求头。
2. 网络传输与服务器接收
(1)HTTP 请求发送:客户端通过 HTTP/HTTPS 协议将请求发送至服务器。
(2)服务器接收:服务器解析 HTTP 请求,获取 JSON 字符串
3.服务器处理JSON数据
(1)反序列化:将 JSON 字符串转换为服务器语言的数据结构(如对象、字典)。
(2)业务逻辑处理
①验证数据合法性(如字段是否存在、格式是否正确);
②根据数据执行操作(如查询数据库、修改状态);
③生成响应数据(如查询结果、错误信息)。
(3)响应序列化:将响应数据转换为 JSON 字符串。
4.服务器返回响应
响应封装:将JSON字符串放入到HTTP响应体,设置状态码。
5. 客户端解析响应
(1)接收响应:客户端获取 HTTP 响应中的 JSON 字符串。
(2)反序列化:将 JSON 字符串转换为本地数据结构
(3)结果处理:
①根据状态码判断请求是否成功(如200
正常处理,401
需重新登录);
②提取数据并渲染页面(如列表、详情)或执行后续逻辑(如跳转页面、提示错误)。
6.代码实例——Linux平台使用JSON
解释:
①创建一个JSON对象并辅值
②将JSON对象转化为字符串
val.toStyledString()
:将JSON对象序列化成格式化的字符串(包含换行和缩进)。
c_str()
:将此字符串转换成C风格字符串(const char*
)。
strcpy()
:将字符串复制到字符数组buff
中。
③反序列化
定义一个新JSON对象
res
。定义一个
Json::Reader
对象Read
。
Read.parse(buff, res)
:解析字符串buff
,存入res
。
④输出反序列化的内容
res["name"].asString()
:获取“name”对应的字符串值,输出“-- 小王”。
res["tel"].asString()
:获取“tel”对应的字符串值,输出“-- 1350000000”。