java中的JSON序列化的问题?

不明白JSON和序列化什么关系,查了很多解释说,是前后端远程通讯的时候,把传输的对象序列化为二进制的数据流传输,这样就更糊涂了.

第一,我们说的前后台用json传输,json不只是一种数据格式么,所以传输的时候就写成json格式,像form表单提交一样传输数据不就可以了?

第二,什么叫转化为二进制,难道form表单的数据或者所有网络传输的数据不都是二进制010101么,那什么还要转二进制呢?

第三,我所理解的序列化就是把它像保存文件一样保存在内存或本地,传输json为何要先保存(序列化)在本地,再传输呢?

所以传输数据中,json和序列化到底什么关系呢?

背景:

1.java对象不能跨进程传递

2.byte数组可被各种stream处理

所以,想传输java对象,就要把对象转换为byte数组。

概念

序列化:按照编码协议把java对象转化为byte数组。

反序列化:按照编码协议把byte数组转化为java对象。

编码协议:json 表单 protobuf thrift 等等,哪怕是你自定义的协议,能够编码解码就行。

传输协议:http ftp thrift grpc dubbo等,以及自定义。

网络五层:

应用层:就是传输协议加上编码协议,比如http+json

传输层:tcp udp 负责解析端口

网络层:ip 负责解析ip地址

链路层 arp pppoe之类的 比如拨号上网

物理层 光纤 卫星等传输01

作者:奋斗无底线

链接:https://www.zhihu.com/question/67037207/answer/358740300

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(java中的JSON序列化的问题?)