【问题标题】:reducing json string size by shortening variable names通过缩短变量名来减少 json 字符串的大小
【发布时间】:2012-02-07 19:17:11
【问题描述】:

我有一些用 JSON.parse 解析的 json 格式数据。我遇到的问题是变量名称的长度:

MyObjectName.SuperLongPropertyName;
MyObjectName.AnotherLongPropertyName;

等等。我正在使用 JavascriptSerializer 和自定义 JavascriptConverter 来生成 json。用于多个ajax调用,数据量在70K左右。

但是,如果我可以将变量更改为

   a.a;
   a.b;

这可以将 json 字符串的大小减少一半。

我可以轻松更改服务器上的序列化/反序列化类。然而,在客户端,它会更加棘手,因为我在我的代码中到处使用这些对象。然后,即使我确实设法更改了变量名,在 javascript 调试器中调试它也会变得非常困难。

对于 a) 在客户端转换我现有的变量名,以及 b) 保持可读性和可调试性,有哪些好的建议?

谢谢。

【问题讨论】:

  • 真正的问题是,你为什么想要更短的 json 字符串。你发送这么多数据? 70k 本身并不令人震惊
  • 您可以构建属性名称和短名称的排序图(按出现次数)。用那些较短的名称重写 json 并发送 map + json。 ;)

标签: javascript asp.net json


【解决方案1】:

使用transparent HTTP gzip compression。然后,您的服务器会即时压缩发送的数据,而网络浏览器会再次对其进行解码。

gzip 完全按照您的建议执行,只会更好。 gzip 不是为一些长的重复名称选择静态别名,而是为所有名称选择别名,并将最短的别名分配给出现最多的别名。此外,gzip 不关心语法,因此可以将, "SuperLongName": {(包括标点符号和空格)分配给单个符号。

【讨论】:

  • 好的,让我看看这是否适用于 azure...我希望有一个更具编程性的选项,但 gzip 毕竟可能会更好。
猜你喜欢
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 2022-01-21
  • 2014-10-15
相关资源
最近更新 更多