序列化-反序列化--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);  // 3


bar是函数对象,通过函数对象+()调用箭头函数。

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

xml

json和xml比较

json---键值对;

xml---标签;

相关推荐
小筱在线2 分钟前
SpringCloud微服务实现服务熔断的实践指南
java·spring cloud·微服务
luoluoal6 分钟前
java项目之基于Spring Boot智能无人仓库管理源码(springboot+vue)
java·vue.js·spring boot
ChinaRainbowSea12 分钟前
十三,Spring Boot 中注入 Servlet,Filter,Listener
java·spring boot·spring·servlet·web
小游鱼KF15 分钟前
Spring学习前置知识
java·学习·spring
扎克begod19 分钟前
JAVA并发编程系列(9)CyclicBarrier循环屏障原理分析
java·开发语言·python
青灯文案120 分钟前
SpringBoot 项目统一 API 响应结果封装示例
java·spring boot·后端
我就是程序猿30 分钟前
tomcat的配置
java·tomcat
阳光阿盖尔36 分钟前
EasyExcel的基本使用——Java导入Excel数据
java·开发语言·excel
二十雨辰37 分钟前
[苍穹外卖]-12Apache POI入门与实战
java·spring boot·mybatis
程序员皮皮林38 分钟前
开源PDF工具 Apache PDFBox 认识及使用(知识点+案例)
java·pdf·开源·apache