¿Cuándo es preferible usar ASN.1 a usar JSON? ¿Cuáles son algunas ventajas y desventajas de ambos enfoques?ASN.1 contra JSON ¿cuándo es apropiado usarlos?
Respuesta
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.
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.
- 1. ¿Cuándo es apropiado usar IoC?
- 2. ¿Cuándo es apropiado usar CacheItemRemovedCallback?
- 3. ¿Cuándo es apropiado usar couchDB?
- 4. ¿Cuándo es apropiado el retroceso recursivo?
- 5. ¿Cuándo es apropiado usar métodos virtuales?
- 6. ¿Cuándo es apropiado usar el atributo KnownType?
- 7. ¿Cuándo no es apropiado usar tablas derivadas?
- 8. ¿Cuándo es apropiado usar genéricos versus herencia?
- 9. objetos o cierres: ¿cuándo usarlos?
- 10. Clave privada con formato ASN.1 DER
- 11. ¿Cuándo es apropiado usar una asociación bidireccional y cuándo no?
- 12. analizador asn.1 en C/Python
- 13. OpenSSL ASN.1 tutorial de programación
- 14. ¿Cuándo es apropiado usar UUID para un proyecto web?
- 15. Algoritmos cercanos a la ordenación: ¿cuándo usarlos?
- 16. Cuándo utilizar los punteros, y cuándo no usarlos
- 17. ¿Cuándo es access_type = Online apropiado? : OAuth2 - API de Google
- 18. ¿Cuándo es apropiado usar procesadores de contexto Django?
- 19. ¿Cuándo es apropiado usar Time # utc en Rails 2.1?
- 20. ¿Cuándo es apropiado responder con un error HTTP 412?
- 21. ¿Cuándo es apropiado usar WCF sobre webclient o httpwebrequest?
- 22. ¿Cuándo es apropiado usar tipos de datos de precisión flotante?
- 23. ¿Cuándo es apropiado usar variables finales en blanco?
- 24. diferencia entre http.context.user y thread.currentprincipal y cuándo usarlos?
- 25. ASN.1 SECUENCIA (DE) valor de la etiqueta real de
- 26. ¿Cómo codifica ASN.1 un identificador de objeto?
- 27. Análisis de datos binarios ASN.1 con Java
- 28. ¿Cómo trabajar en ASN.1 e implementar estructuras en él?
- 29. Decodificar un DER OCTET STRING ASN.1 con OpenSSL
- 30. Cierres en PHP ... ¿qué son, exactamente, y cuándo necesitarías usarlos?
¿Qué tiene que ver Java con JSON? –
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? –
Correcto, Java no tiene nada que ver con JSON. – megazord