前后端序列化的差别 您所在的位置:网站首页 qs序列化对象 前后端序列化的差别

前后端序列化的差别

2024-01-15 16:43| 来源: 网络整理| 查看: 265

文章目录 前言前后端序列化的差别前端差别用途注意事项qsJSON 后端差别用途注意事项serializable序列化机制

前言

最近无论做前端项目,还是学习Redis,还是之前遇到的javabean实现serializable接口,都提到了序列化这个知识点,但是自己对这一块一直迷迷糊糊的,决定总结一下。

前后端序列化的差别

注意:前端讲的序列化和java中讲的序列化是有些差别的,这也是前后端都沾过而产生疑问的原因。

前端 差别

前端的序列化指的是将对象转换为一定格式的字符串。比如: var a = {name:'hehe',age:10};

qs.stringify(a) ==>'name=hehe&age=10'JSON.stringify(a) ==>'{"name":"hehe","age":10}'

而反序列化则是将该序列化后的字符串重新转换为a对象。

用途 qs多用于发送请求时将对象作为参数拼接在URL路径上。json多用于在接受后端发送的数据时,将其从字符串转化为对象来使用 注意事项 qs

在传递数组时

默认情况: qs.stringify({ a: ['b', 'c', 'd'] }); // 'a[0]=b&a[1]=c&a[2]=d' 重写默认情况 qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); // 'a=b&a=c&a=d' 通过arrayFormat选项进行格式化输出 qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) // 'a[0]=b&a[1]=c' qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) // 'a[]=b&a[]=c' qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) // 'a=b&a=c'

更多细节参考:QS中文文档

JSON

语法:JSON.stringify(value[, replacer[, space]])

参数说明:

value: 必需, 要转换的 JavaScript 值(通常为对象或数组)。

replacer: 可选。用于转换结果的函数或数组。

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。

如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。

space: 可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。

语法:JSON.parse(text[, reviver])

参数说明:

text:必需, 一个有效的 JSON 字符串。 reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。 后端 差别

后端的序列化指的是将java对象转为字节流序列(二进制串)的过程,反序列化是指将字节流序列(二进制串)恢复为java对象的过程。例如: javabean对象实现serializable接口。

用途 需要把内存中的对象状态数据保存到一个文件或者数据库中的时候,这个场景是比较常见的,例如我们利用mybatis框架编写持久层insert对象数据到数据库中时;网络通信时需要用套接字在网络中传送对象时,如我们使用RPC协议进行网络通信时; 注意事项 serializable

serializable为空接口,是java.io包中定义的、用于实现Java类的序列化操作而提供的一个语义级别的接口,没有任何方法或者字段。

其本质上的作用是表示一种方式让JVM知道如何将对象数据转换为字节流,以及如何将字节流数据转换为特定对象。

序列化机制

Java的序列化机制是通过运行时判断类的序列化ID(serialVersionUID)来判定版本的一致性。

在反序列化时,java虚拟机会通过二进制流中的serialVersionUID与本地的对应的实体类进行比较,如果相同就认为是一致的,可以进行反序列化,正确获得信息,否则抛出序列化版本不一致的异常。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有