2012-06-29 6 views

Respuesta

15

ASN.1 y JSON no son estrictamente comparables. JSON es un formato de datos. ASN.1 es un lenguaje de esquema más varios conjuntos de reglas de codificación, cada una de las cuales produce diferentes formatos de datos para un esquema dado. Entonces, la pregunta original de alguna manera es paralela a la pregunta "XML Schema vs. XML: ¿cuándo es apropiado usarlos?" Una comparación más justa sería entre ASN.1 y JSON Schema.

Dicho esto, algunos puntos a considerar:

  • ASN.1 tiene reglas de codificación binaria. Considere si la codificación binaria o de texto es preferible para su aplicación.
  • ASN.1 también tiene reglas de codificación XML. Puede optar por ir con una codificación basada en texto utilizando ASN.1, si lo desea.
  • ASN.1 permite desarrollar otras reglas de codificación. De hecho, especificamos nuestras propias reglas (no estandarizadas) para codificar ASN.1 a JSON. Bloggeé sobre esto en el sitio web de nuestra compañía here
  • Al igual que con el Esquema XML, existen herramientas para compilar ASN.1. Estas se conocen comúnmente como herramientas de enlace de datos. La salida del compilador consiste en estructuras de datos para contener sus datos, y un código para codificar/descodificar a/desde las diversas codificaciones (binario, XML o, si usa nuestra herramienta, JSON).
  • No estoy seguro de qué herramientas de enlace de datos, si las hay, existen para el esquema JSON. Tampoco estoy seguro de qué tan maduro/estable es el Esquema JSON, mientras que ASN.1 es bastante maduro y estable.
  • Al elegir entre el esquema JSON y ASN.1, tenga en cuenta que el esquema JSON está vinculado a JSON, mientras que ASN.1 no está vinculado a ninguna representación en particular.
2

Puede usar ASN.1 independientemente de si necesita serializar mensajes que puedan ir a un destinatario utilizando C, C++, C#, Java o cualquier otro lenguaje de programación con codificador/decodificador ASN.1. ASN.1 también proporciona múltiples reglas de codificación que tienen beneficios bajo diferentes circunstancias. Por ejemplo, DER se usa cuando una codificación canónica es crucial, como en los certificados digitales, mientras que PER se usa cuando el ancho de banda es crítico, como en los protocolos celulares, y E-XER se usa cuando no le interesa el ancho de banda y le gustaría para mostrar una codificación en XML para la manipulación en un navegador o intercambiar mensajes con un motor de esquema XML.

Tenga en cuenta que con una buena herramienta ASN.1, no tiene que cambiar el código de la aplicación para cambiar entre estas reglas de codificación ASN.1. Una llamada de función simple puede seleccionar las reglas de codificación que le gustaría usar.

+2

¿Qué tiene que ver Java con JSON? –

+0

Según tengo entendido, JSON se refiere a la notación de objetos de JavaScript. ¿Me estás diciendo que esto no tiene nada que ver con Java a pesar de que Java es parte de su nombre? –

+11

Correcto, Java no tiene nada que ver con JSON. – megazord

Cuestiones relacionadas