JSON 字符串如何转换为短链接

208 天前
 zzlit

例如有一串很长的 JSON 字符串 '{"x":5,"y":6}' ,我想转为短链,并且拿到短链的还能反编译为原值。考虑了几个压缩的库发现字符串长度并不会更短,甚至还会更长。

那其实应该是需要先进行把能精简长度的尽量精简,比如 key ,然后再进行一定的规则转为短链而不是单纯的压缩,有大佬能谈一下这个转换的规则吗? JavaScript 库或者算法都可以。

另外我了解现在的短链大部分是有服务端参与存储在数据库里面的,但是有无纯前端的方案呢?

3617 次点击
所在节点    程序员
54 条回复
niubilewodev
208 天前
XY 问题,说出你的真实需求。
lambdaq
208 天前
如果 json 结构很杂乱,纯粹为了节省 URL 空间,那么 kibana 那套方案可以参考下

https://github.com/betodealmeida/python-rison

比如
{'foo': 'bar'}

压缩后:
(foo:bar)
kpsanmao
208 天前
做个数据库呗,json 存数据库里,返回 id 。
nzynzynzy
208 天前
@cheng6563 #16 作为开发和用户,对存储压力毫无感知,方案很不错
opengps
208 天前
要知道,json 的诞生是由 xml 驱动的,所以要是有更短的格式肯定不会是现在的 2 局面
zzlit
208 天前
@cmdOptionKana
@niubilewodev 多谢大佬的回复,我需求就是脱离服务端的存储,从前端进行数据传递,是因为打羽毛想到的一个轮转对局的算法,我写出来了但是只能我自己“单机”看,所以就想到有没有这种途径,我把对局信息处理为短链,然后发给大家,大家可以进行反编译拿到对局信息,至于反编译的工具或者说平台就很简单了,现在就是卡在处理数据这一步
zzlit
208 天前
@0o0o0o0 受教了
cmdOptionKana
208 天前
@zzlit

> 把对局信息处理为短链,然后发给大家

这一步,是通过什么方式发送?
cmdOptionKana
208 天前
感觉你可以通过网盘之类的方式,直接分享文件。或者索性直接自己建个网站算了,没有自己的服务器,很多事情都束手束脚。
systemGuest
207 天前
@ink19
@JShen
结合需求看问题,我的理解他已经确定了 json 内容,但是业务上通过 json 传输很不方便,那就 key=>value 对应转换下结束, 没那么多要求。
shanai
207 天前
搜索下 CJSON 、HPACK
junwind
207 天前
自己定义一套字典呗, 比如 a 表示 xxx ,b 表示 yyy ,然后把这套字典交给要解析的对方。
ink19
207 天前
@systemGuest #50 如果你返回的 id ,那为啥还需要保存 md5 呢?我比较同意 JShen 的说法,如果你要使用一个 key ,最好就是用散列的 key ,可以防爬,比如 b 站的 bv 号。
JShen
207 天前
@systemGuest #50 这里很多不明确的需求,数据量有多大?后续 json 会不会变?你直接一个 md5 我没看懂,md5 数据相当于没办法恢复了,返回 ID 的做法不太符合互联网的常规做法,美团的订单号不是顺序的,淘宝也不是,就是防止在订单上被人爬取。这些都是要考虑的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1088759

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX