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

序列化-反序列化--json-xml-protoBuf

序列化和反序列化

数据在网络中传输需要按照一定的规范组成。这些规定的规范有json,xml,protobuf。

序列化

也就是说数据需要通过网络传输时,需要把数据转化为需要的传输格式,所以需要把需要传输的数据生成json或者xml或者protobuf语言格式文件,才能传输。

反序列化

当数据传输完成时,又需要把格式文件转为原本或者我们需要(比如数据从lua解析出来,反序列化之后需要变为js数据)的数据。

JSON、XML 和 protobuf

JSON、XML 和 Protocol Buffers(protobuf)是三种常见的数据表现格式。它们的共同目的是在不同的应用程序和平台之间传输数据,而无需知道底层数据结构或编程语言细节。

以下是每种格式的简要描述:

1. JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。它是基于 JavaScript 对象语法,并以文本格式存储数据。JSON 是平台无关的,易于解析和生成,可被普遍支持。由于其简单、快速和安全,JSON 已成为 Web 开发中最流行的数据交换格式。
2. XML(eXtensible Markup Language):与 JSON 类似,XML 也是一种可读性高,轻量级的数据交换格式。XML 是基于标签结构,并以文本格式存储数据。XML 具有严格的结构和丰富的元数据,可用于描述复杂的数据和多级场景,并具有广泛的应用。
3. Protocol Buffers:是 Google 研发的一种高效的二进制数据交换格式。由于其高效的编解码和紧凑的数据表示,Protocol Buffers 已成为一种流行的网络通信协议和数据交换格式。 它是强类型的,并具有自描述、可扩展、跨平台和反向兼容等优点。
 

JSON

json教程

json语法:

一个{}就是一个json对象。

parse解析时,就会将解析出来的一个{}json对象赋值给一个js对象变量;

比如:

//json对象{ "name":"runoob", "alexa":10000, "site":null }//js对象
var myObj;
myObj = { "name":"runoob", "alexa":10000, "site":null };

js对象和变量

//将一个json字符串赋给一个js变量
var person = '{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}';//建立一个对象
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

json---parse

var data='{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }';
var obj = JSON.parse(data);/*
obj={ "name":"runoob", "alexa":10000, "site":"www.runoob.com" };
*/

箭头函数

链接

function foo() {let bar = () => {console.log(arguments.length);}bar(); 
}
foo(5, 5, 5);  // 3bar是函数对象,通过函数对象+()调用箭头函数。

js的函数对象就像c++的lambda表达式。

xml

json和xml比较

json---键值对;

xml---标签;

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

相关文章:

  • ubuntu 配置nacos开机启动
  • 单节点大数据平台运维脚本
  • HTML基础知识
  • 牛客禁用题:求阶乘
  • spring.factories的常用配置项
  • 数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】
  • 【办公类-21-05】20240227单个word按“段落数”拆分多个Word(成果汇编 只有段落文字 1拆5)
  • 【前端素材】推荐优质后台管理系统网页my-Task平台模板(附源码)
  • Linux高负载排查最佳实践
  • 【python开发】网络编程(上)
  • php源码 单色bmp图片取模工具 按任意方式取模 生成字节数组 自由编辑点阵
  • 设计模式-命令模式(Command Pattern)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:位置设置)
  • ShardingJdbc实战-分库分表
  • 51单片机-(定时/计数器)
  • midjourney提示词语法
  • 【鸿蒙 HarmonyOS 4.0】路由router
  • AT24C1024的模拟IIC驱动
  • Stable Diffusion生成式扩散模型代码实现原理
  • 解决Keepalived “脑裂”(双VIP)问题
  • cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台
  • java基础知识面试题
  • 科技云报道:黑马Groq单挑英伟达,AI芯片要变天?
  • 解决i18n国际化可读性问题,傻瓜式webpack中文支持国际化插件开发
  • 【Django】执行查询—F()表达式
  • 202112CSPT4磁盘文件操作
  • 5GC SBA架构
  • 《求生之路2》服务器如何选择合适的内存和CPU核心数,以避免丢包和延迟高?
  • 精读服务器默认rsyslog的配置文件
  • Vue2:用node+express部署Vue项目