1 chfight 2019-03-07 19:07:02 +08:00 gzip base64 试一下? |
![]() | 2 kiddult 2019-03-07 19:07:37 +08:00 base85? 不过还是用 base64 比较好一些,代码上可读性要好很多 |
![]() | 3 chinvo 2019-03-07 19:08:31 +08:00 为啥要这么做…… 感觉你这个场景应该是下载文件,json 里面提供个链接,然后访问链接获取 binary 不行么 |
![]() | 4 dapang1221 2019-03-07 19:09:48 +08:00 二进制的都要 1MB,其他编码形式只能比 1MB 多啊,为什么不建一个存储,json 里放路径呢… |
5 VDimos 2019-03-07 19:16:49 +08:00 via Android 为啥要在 json 放 binary,这个需求好奇怪 |
6 whatsmyip 2019-03-07 19:20:16 +08:00 type(xxx) = bytes type(xxx.encode()) = str |
![]() | 7 index90 2019-03-07 19:21:26 +08:00 为什么要用 JSON 来序列化一个二进制文件…… |
8 Cbdy 2019-03-07 19:22:04 +08:00 via Android base64 编码数据增大了 1/3 (算大幅吗?),其实在大多数场景可以接受吧 如果接受不了,可以再用一些字符,把键盘上的字符都用一边估计可以 |
![]() | 9 rayingecho 2019-03-07 19:29:27 +08:00 ![]() 闻出了 X-Y Problem 的味道: https://coolshell.cn/articles/10804.html "我想用 X 实现 Y, 请问 X 要怎么实现?" 很多时候这是南辕北辙, 建议直接说出你的最终需求, 也就是 Y 是什么 |
![]() | 10 xfriday 2019-03-07 19:43:57 +08:00 200 OK ... My-File-Name: test.exe <byte[]> |
11 melonux |
12 moonsn 2019-03-07 19:46:46 +08:00 @rayingecho +1 |
13 melonux OP |
![]() | 14 ma6254 2019-03-08 05:20:56 +08:00 也就是说,这个接口同时要返回文件附加信息和文件内容,还要是 json,并且要有可读性。 感觉应该把文件信息和文件内容分成两个接口,这样就只需要维护文件信息接口的可读性,而文件内容接口的可读性就不用管。 但是这样又可能会带来同步的问题 |
![]() | 15 zyp0921 2019-03-08 08:43:01 +08:00 全部转成字符串啊,然后拿到的再把字符串转回去就可以了啊 |
16 farseeraliens 2019-03-08 09:19:26 +08:00 via iPhone @zyp0921 小白请教一下,请问您指的是 byte string 吗?如果是的话,不还得要求协议支持 byte string 吗? http 支持吗? |
![]() | 17 zyp0921 2019-03-08 09:35:20 +08:00 |
18 farseeraliens 2019-03-08 09:58:24 +08:00 via iPhone @zyp0921 没理解,这样增大一倍不比 base64 增大三分之一还差? |
19 leonard916 2019-03-08 15:13:05 +08:00 ![]() 我得主可以考 BSON ( http://bsonspec.org/ ) |
![]() | 20 zyp0921 2019-03-08 15:43:00 +08:00 @farseeraliens 大就大点,没关系- - 要不考虑用 protobuf |
21 melonux OP @leonard916 嗯,终于意识到 BSON 解决的是个什么问题了 |
22 NoKey 2019-04-28 16:12:16 +08:00 我现在也有个这种需求,json 返回人员信息,但是人员信息太大,所以对信息进行 gzip 压缩,压缩出来的就是 byte,我也在纠结,byte 如何放到 json 里面。 楼上提到的一些方案会增大数据容量的方法不行,gzip 就是为了减少数据大小 byte 转 string,然后 string 又转回 byte,好像有问题 |