ASN.1与JSON何时适合使用它们?

Eri*_*tis 10 language-agnostic encoding json asn.1

什么时候使用ASN.1比使用JSON更好?这两种方法有哪些优点和缺点?

Kev*_*vin 19

ASN.1和JSON不具有严格的可比性.JSON是一种数据格式.ASN.1是一种模式语言,加上多组编码规则,每种编码规则为给定的模式生成不同的数据格式.因此,最初的问题有点类似于"XML Schema vs. XML:何时适合使用它们?" 更公平的比较是ASN.1和JSON Schema之间的比较.

那说,要考虑几点:

  • ASN.1具有二进制编码规则.考虑二进制或文本编码是否适合您的应用程序.
  • ASN.1还具有XML编码规则.如果您愿意,可以选择使用ASN.1进行基于文本的编码.
  • ASN.1允许开发其他编码规则.实际上,我们指定了自己的(非标准化)规则来将ASN.1编码为JSON.我在这里的公司网站上写了这篇博文
  • 与XML Schema一样,存在用于编译ASN.1的工具.这些通常被称为数据绑定工具.编译器输出包含用于保存数据的数据结构,以及用于编码/解码各种编码的代码(二进制,XML,或者,如果使用我们的工具,JSON).
  • 我不确定JSON Schema存在什么数据绑定工具(如果有的话).我也不确定JSON Schema是多么成熟/稳定,而ASN.1非常成熟和稳定.
  • 在JSON Schema和ASN.1之间进行选择,请注意JSON Schema绑定到JSON,而ASN.1未绑定到任何特定表示.