当前位置: 首页 > news >正文

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):整数或浮点数(不支持八进制或者十六进制),例如 423.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”。

相关文章:

  • Hightec生成tricore lib及lib的使用方法
  • 自动化立体仓库堆垛机控制系统STEP7 FC3功能块 I/O映射
  • 为车辆提供路径规划解决方案:技术演进、挑战与未来蓝图
  • 数据结构转换与离散点生成
  • c++11标准(5)——并发库(互斥锁)
  • 偏微分方程通解求解2
  • ​《吠檀多不二论的四个基本原理》​(前三部分)
  • 【软考高级系统架构论文】论无服务器架构及其应用
  • 2025年- H83-Lc191--139.单词拆分(动态规划)--Java版
  • Axios 在 Vue3 项目中的使用:从安装到组件中的使用
  • XSS-labs的1-18关
  • 60天python训练营打卡day38
  • 【StarRocks系列】查询优化
  • C 语言结构体:从基础到内存对齐深度解析
  • springboot垃圾分类网站
  • 响应式数据的判断:Vue3中的方法
  • 学c++ cpp 可以投递哪些岗位
  • AI大模型(四)openAI应用实战
  • 大模型在急性弥漫性腹膜炎预测及治疗方案制定中的应用研究
  • rt-thread中使用usb官方自带的驱动问题记录
  • 电子商务如何做网站销售/seo优化服务是什么
  • 延庆住房和城乡建设委员会网站/中国软文网
  • 适合新手做的网站/石家庄seo关键词
  • 福州市建设厅网站/北京百度seo公司
  • 旅游网站模板大全/成年培训班有哪些
  • 贝贝网网站开发背景/山东网络推广优化排名