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

【网络】:序列化和反序列化

序列化和反序列化

    • 一.json库
  • 二.简单使用json库

前面已经讲过TCP和UDP,也写过代码能够进行双方的通信了,那么有没有可能这种通信是不安全的呢?如果直接通信,可能会被底层捕捉;可能由于网络问题,一方只接收到了一部分字符;如果想要实现像QQ那样既能显示ID,又能显示内容该怎么做呢…为了解决一系列问题,就需要我们在应用层制定协议了。而应用层协议的一个大点就是序列化和反序列化。

什么是序列化和反序列化

  1. 序列化和反序列化是将对象转换为字节流或其他格式,以便在网络传输或持久化存储时使用,然后将其重新转换回对象的过程。

  2. 序列化是将对象转换为字节流的过程。这可以通过将对象的状态写入到文件、数据库或网络中来实现。序列化的结果可以是二进制格式、XML格式、JSON格式等。

  3. 反序列化是将字节流或其他格式转换回对象的过程。这可以通过从文件、数据库或网络中读取字节流,并使用相应的反序列化算法来实现。反序列化的结果是重新创建对象,并将其状态恢复为序列化之前的状态。

简而言之:序列化就是将一字符串转换成特定格式,例如:xxxyyyzz,转换成name=xxx,content=yyy,data=zz等特定结构。反序列化就是将特定的结构再转回字符串。

一.json库

简单地说,JSON 可以将 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在 PHP 中,可以将 JSON 还原为数组或者一个基本对象。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化为字符串.

总而言之就是帮助我们进行序列化和反序列化的库。

类似于:

在这里插入图片描述

注意这是一个字符串。它其实都是类似于key:value的形状,中间用逗号隔开。

安装第三方库

在这里插入图片描述

二.简单使用json库

一个第三方库,它需要给我们提供的是include头文件和.lib库文件,而它们的安装目录一般是固定的。头文件在/usr/include下,库文件在lib64下。

在这里插入图片描述

在这里插入图片描述

简单使用

1.序列化(两种打印方式)

具体流程:创建Value对象,然后像使用hash表那样进行kv操作,最后使用write方法,将其转换成json串。注意在编译时,也要链接第三方库。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:这依然是一个字符串,只是加了\n,让可读性更好。

2.反序列化

实际上与序列化过程差不多,定义一个Value对像和一个Reader对象,然后再依次读出。

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/298618.html

相关文章:

  • AJ-Report 【开源的一个BI平台】
  • Matplotlib核心:掌握Figure与Axes
  • 问题:A注册会计师必须在期中实施实质性程序的情形是()。 #学习方法#其他
  • C#系列-C#EF框架返回单行记录(24)
  • 【PyTorch】张量(Tensor)的生成
  • 【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-Viterbi译码原理
  • 矩阵在计算机图像处理中的应用
  • Java实现教学资源共享平台 JAVA+Vue+SpringBoot+MySQL
  • Spring Boot(六十五):使用 ant.jar 执行 SQL 脚本文件
  • 161基于matlab的快速谱峭度方法
  • CTFshow-WEB入门-信息搜集
  • django密码管理器(创建项目)
  • Centos7之Oracle12c安装与远程连接配置
  • CVE-2022-25578 漏洞复现
  • Ubuntu22.04安装黑屏(进入U盘安装引导时 和 安装完成后)
  • 一、DataX简介
  • 直播app开发,技术驱动的实时互动新纪元
  • Apache POI的介绍以及使用示例
  • npm config set registry https://registry.npm.taobao.org 这个设置了默认的镜像源之后如何恢复默认的镜像源
  • 算法沉淀——位运算(leetcode真题剖析)
  • React18原理: 再聊Fiber架构下的时间分片
  • 【玩转408数据结构】线性表——线性表的顺序表示(顺序表)
  • 图像处理之《黑盒扰动的可逆噪声流鲁棒水印》论文阅读
  • 一个Vivado仿真问题的debug
  • C#阿里云消息列队推送消息
  • Stable Diffusion 模型下载:majicMIX sombre 麦橘唯美
  • WindowsLinuxmeterepreter渗透命令回顾
  • KingSCADA实现按钮点击效果
  • Python编程-二万字浅谈装饰器原理与装饰器设计模式和函数式编程案例讲解
  • 基于Zigbee的智能温室大棚系统(附详细使用教程+完整代码+原理图+完整课设报告)