1

我有一个接受 JSON 对象的 .NET Web 方法 (C#)。客户端的 JQuery 代码创建 JSON 数据并使用 Ajax 将其发布到 Web 方法。

它有效,但数据集可能非常大。

我正在尝试找到一种在 javascript 中压缩 JSON 字符串的方法,然后在 web 方法中将其解压缩回原始 JSON。JSON 将成为压缩的良好候选者的一个原因(据我所知)是整个数据中属性名称的不断重复。

如何实现 JSON 压缩/解压缩?

4

1 回答 1

3

我认为您应该为 IIS 保留压缩功能。在 applicationhost.config 中,您可以定义:

<system.webServer>
<urlCompression doDynamicCompression="true" />
<httpCompression>
  <dynamicTypes>
    <add mimeType="application/json" enabled="true" />
    <add mimeType="application/json; charset=utf-8" enabled="true" />        
  </dynamicTypes>
</httpCompression>
</system.webServer>

您可以在此处阅读更多信息:http ://www.west-wind.com/weblog/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x

另一方面,您可以使用更紧凑的格式 - 例如https://code.google.com/p/protobuf-js/http://www.servicestack.net/mythz_blog/?p=176

更新:只要问题作者需要压缩请求,使用默认浏览器功能是不可能的(为什么浏览器不能发送 gzip 请求?)。无论如何,有 lz4 压缩算法,它非常快并且在许多平台上都有实现(包括 javascript 和 c#),这可能是一个解决方案,特别是因为有人对其进行了基准测试并且它比 protobuff 运行得更快(我认为这是端到端测试,暂时找不到详细信息)。

于 2013-06-06T11:58:23.547 回答