【发布时间】:2012-06-29 13:36:50
【问题描述】:
什么时候使用 ASN.1 比使用 JSON 更可取?这两种方法的优缺点是什么?
【问题讨论】:
标签: json language-agnostic encoding asn.1
什么时候使用 ASN.1 比使用 JSON 更可取?这两种方法的优缺点是什么?
【问题讨论】:
标签: json language-agnostic encoding asn.1
ASN.1 和 JSON 没有严格的可比性。 JSON 是一种数据格式。 ASN.1 是一种模式语言加上多组编码规则,每组编码规则都会为给定的模式生成不同的数据格式。所以,最初的问题有点类似于“XML Schema vs. XML:什么时候适合使用它们?”这个问题。更公平的比较是 ASN.1 和 JSON Schema。
也就是说,有几点需要考虑:
【讨论】:
无论您是否需要使用 C、C++、C#、Java 或任何其他具有 ASN.1 编码器/解码器引擎的编程语言来序列化可能发送给收件人的消息,您都可以使用 ASN.1。 ASN.1 还提供了多种编码规则,它们在不同的情况下都有好处。例如,在规范编码至关重要时使用 DER,例如在数字证书中,而在带宽至关重要时使用 PER,例如在蜂窝协议中,而当您不关心带宽并且想要以 XML 格式显示编码以便在浏览器中进行操作或与 XML Schema 引擎交换消息。
请注意,使用好的 ASN.1 工具,您无需更改应用程序代码即可在这些 ASN.1 编码规则之间切换。一个简单的函数调用就可以选择你想使用的编码规则。
【讨论】:
Here 可以找到一个对 JSON、XML、ASN.1、EXI 和 ProtoBuf 有深入研究的论文
【讨论】: