最近在开发一个 Spring MVC 的项目,控制层中使用 JSON 字符串形式接收前端传来的数据并进行解析。想问一下除了 JSON 外还能有什么形式传递数据? 还有如果数据量太大怎么传输,比如一个实体类 10 个字段,前端传来 100 个实体类转换为的 JSON,有没有更好的传输方式?
最近在开发一个 Spring MVC 的项目,控制层中使用 JSON 字符串形式接收前端传来的数据并进行解析。想问一下除了 JSON 外还能有什么形式传递数据? 还有如果数据量太大怎么传输,比如一个实体类 10 个字段,前端传来 100 个实体类转换为的 JSON,有没有更好的传输方式?
|
skypybJun 24, 2020 via Android
1
xml... 数据更大
100 个实体类能有多大? 该传不还是传 |
|
2
Protobuf
|
|
hantsyJun 24, 2020
3
binary
|
|
dcalskyJun 24, 2020 via Android
4
websocket 长连接来发
|
|
5
为啥不分页?
|
|
mreasonyangJun 24, 2020 via iPhone
6
可能需要换个思路用 gRPC 这类实现?不过 HTTP 1.1 下 JSON 格式绝对是当下使用和维护成本最低的方案。
|
|
xiaoideaJun 24, 2020
7
我们公司有用 protobuf 的
|
|
rbeJun 24, 2020
8
用 lz-string 之类的算法压缩,在服务端序列化
|
|
Bromine0x23Jun 24, 2020
9
序列化格式都行啊,什么 Apache Avro 、CBOR 、Smile 、Protobuf 、YAML……
|
|
zhuangzhuang1988Jun 24, 2020
10
from 啊.
|
|
YuiconJun 25, 2020
11
有更好的为什么大家都用 json 呢
|
|
chairuosenJun 25, 2020
12
@Yuicon 因为 JSON 兼顾可读 /体积 /扩展性
|
|
opengpsJun 25, 2020 via Android
13
你完全可以重新构造下数据结构传输。
xml,json 都是一串字符(进一步说字节流更准),你可以尝试下发送一些自定义的格式发送,后端配合自定义的规则来接收。 如果做过 socket 相关的开发,这一点就跟容易理解了 |
|
also24Jun 25, 2020
14
其实 JSON 挺好的,担心序列化导致体积过大的话,可以将 POST 的内容先 gzip 一下再发送。
|
|
bxd5812127Jun 25, 2020 via iPhone
16
啥都可以,那只是数据的格式而已
|
|
bxd5812127Jun 25, 2020 via iPhone
17
前端随便传只要后端能解析,无论什么形式都行的
|
|
whypoolJun 25, 2020
18
json 前端能直接用
|
|
hugo54Jun 25, 2020
19
用 JSON 的主要理由有两条:人类可读、对前端友好。如果希望 HTTP 报文有更小的体积,可以用楼上提到的那些二进制序列化方式。
|
|
ONCEsamaJun 27, 2020
20
事实上,前端以什么格式来传数据都可以,只要后端能解析就行了。只不过 json 可读性好而且简单,所以它才成为了主流,以前 xml 格式也很流行。曾经我接触过一个项目,数据格式是自己定义的,看起来就是一串数字加字母的组合,人是没办法直接看出到底是什么意思的,调试的时候只能使用专门的解析工具才知道每个字段的含义。
|