Estoy seguro de que muchos desarrolladores están familiarizados con XML y JSON , y los han usado a ambos. Por lo tanto, no tiene sentido explicar cuáles son y cuál es su propósito, incluso en breve.
Si intentamos mapear sus conceptos, podemos decir (corrígeme si me equivoco):
- Las etiquetas XML son equivalentes a JSON
{}
- Los atributos XML son equivalentes a las propiedades JSON
- La colección de etiquetas XML es equivalente a JSON
[]
Lo único que se me ocurre, que no existe en JSON, son los espacios de nombres XML .
La pregunta es, considerando este mapeo, y considerando que JSON es altamente más ligero en este mapeo, ¿podemos ver un mundo en el futuro (o al menos pensar en un mundo teóricamente) sin XML, pero con JSON haciendo todo lo que XML hace? ¿Podemos usar JSON en todas partes donde se usa XML?
PD: Tenga en cuenta que he visto esta pregunta. Es algo completamente diferente de lo que estoy preguntando aquí. Por lo tanto, no mencione duplicados .
Respuestas:
Lo que le da a XML su poder y gran parte de su complejidad es el contenido mixto. Cosas como esta:
Ni siquiera intentes hacer eso en JSON, o manipularlo en lenguajes de programación convencionales. No fueron diseñados para el trabajo.
Este tipo de pregunta generalmente proviene de personas que olvidan que la M en XML significa marcado. Es una forma de tomar texto sin formato y agregar marcas para crear texto estructurado. También es bastante útil para datos anticuados, pero no es para eso para lo que fue diseñado ni para dónde residen sus puntos fuertes. Hay muchas formas de manejar datos simples, y JSON es una de ellas.
fuente
A
el elemento B y el "desastre en el que estamos". Es una matriz, que simplemente puede explicar en JSON.La principal diferencia, creo, está en el hecho de que XML está diseñado para explicarse por sí mismo con sus dtd y todo.
Con JSON, debe asumir muchas cosas sobre los datos que está recibiendo.
fuente
Una traducción literal a JSON es a menudo menos sucinta y menos clara. Considerar:
La representación JSON más efectiva que he visto de esto:
Ahora, imagine eso para un archivo XML completo. No estoy diciendo que JSON no tenga su lugar, pero XML no debe descartarse.
fuente
(foo (x:bar (@ (x:prop1 "g")) (quuz)))
JSON y XML son dos formas de formatear datos. Ambos son capaces de hacerlo perfectamente bien, ¿puede JSON hacer todo lo que hace XML? Si.
Pero ..... Una pregunta más relevante podría no ser qué puede hacer XML / JSON, sino qué puede hacer con XML / JSON.
Hay varias cosas que puede hacer con XML que no creo que pueda hacer con JSON, como traducir con XLST, buscar con XPath y validar con esquemas. Todo muy, muy útil.
fuente
Hay mucha funcionalidad con XSLT que puede no ser posible con JSON. Entonces, si no son funcionalmente equivalentes, no podrían reemplazarse entre sí.
fuente
El hecho es que tendremos que vivir con ambos durante mucho tiempo, y ser un fanático de JSON es "considerado dañino".
fuente
JSON es bastante nuevo y los sistemas heredados no lo admitirán. La actualización de los sistemas heredados es costosa e introduce errores. JSON no reemplazará XML en ningún momento en el futuro cercano.
fuente
Yo diría que cwallenpoole hace un excelente punto. Si bien la mayoría de XML se puede traducir a JSON, si hacerlo es mejor es un punto separado.
JSON se presta a estructuras de datos al menos tan bien como XML y probablemente mejor, pero XML lee mucho más naturalmente que JSON al marcar documentos textuales, donde las etiquetas se usan dentro de un flujo de texto más amplio en lugar de simplemente como una forma de delimitar una jerarquía de campos.
Si bien HTML 5 puede tener su propio analizador, eso todavía deja aplicaciones como DocBook.
fuente
Depende del dominio. En términos de servicios web? Absolutamente. Es completamente vergonzoso que los proveedores sigan presionando a SOAP a sus clientes. REST + JSON hasta el final.
Ahora, cuando habla de datos complejos y estructurados con información de estilo como Docbook u otra implementación. Ese es un dominio adecuado para XML.
fuente
¿Por qué limitarse a JSON cuando YAML es un superconjunto y mucho más expresivo y, por lo tanto, más potente que XML o JSON?
Dicho esto, si usa los marcos de serialización correctos, debería poder serializar y deserializar todos los formatos mencionados anteriormente con un par de líneas de código simples.
fuente
Se pone feo cuando intentas modelar estos dos objetos en JSON:
Usando JSON como solía hacerlo en el 99% de los casos, uno se pierde con:
Y ahora tienes que agregar algunas metaestructuras y toda la belleza de JSON desaparece mientras te quedas con las desventajas.
fuente
{ customer: { name: 'John Doe' }, employee : { name: 'John Doe' } }
. Entonces, técnicamente, su respuesta no es correcta. :)<customer><name>John Doe</name></customer><customer><name>John Doe</name></customer>
en JSON?No sé si existe tal instalación para JSON, pero en .NET al menos puede validar XML contra un esquema dado. Esa es una valiosa ventaja de XML en mis ojos.
fuente