Linux——JSON
目录
一、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”。