什么时候使用ASN.1比使用JSON更好?这两种方法有哪些优点和缺点?
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(例如在蜂窝协议中),当您不关心带宽时使用E-XER并且希望显示XML格式的编码,以便在浏览器中进行操作或使用XML Schema引擎交换消息。
请注意,使用良好的ASN.1工具,您无需更改应用程序代码即可在这些ASN.1编码规则之间切换。一个简单的函数调用可以选择您想要使用的编码规则。