c# - JSON 压缩器/解压缩器工具

标签 c# jquery .net json

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

它可以工作,但数据集可能非常大。

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

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

最佳答案

我认为您应该将压缩留给 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 .

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

关于c# - JSON 压缩器/解压缩器工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16961391/

相关文章:

c# DatagridView 控件(VirtualMode)和线程

c# - Code First Entity Framework - 更改连接字符串

javascript - 如何在用户滚动经过某个 div 时更改 CSS

javascript - 如何在一个函数中设置多个 id

c# - 使用表达式生成 e => new { e.Id, e.CompanyId }

c# - 如何在静态类中覆盖 ToString?

c# - 在 ComboBox 中隐藏 DropDownList

c# - 在 C# 中分段下载?

c# - 将 href 设置为超链接文本

javascript - jQuery 如何将#output 传递给变量以在输入字段中使用