En el articulo XML utilizamos un ejemplo de un archivo XML. Para ejemplificar JSON volveremos a presentar ese archivo XML y luego el equivalente JSON, para ver las diferencias entre ambos estándares de intercambio de datos.

Además en este artículo presentaré otros ejemplos de equivalencias, para que comprenda la sintaxis JSON y su equivalencia con XML.

Ejemplo de XML

<Clientes>
  <Cliente ID="283">
  	<Nombre>Juan Carlos Crespin</Nombre>
	<Direccion verificada="si">
            <Calle>Avda Perú</Calle>
            <Numero>235</Numero>
	    <Ciudad>Bahía Blanca</Ciudad>
	    <Provincia>Buenos Aires</Provincia>
	    <CodigoPostal>8000</CodigoPostal>
            <Pais>Argentina</Pais>
         </Direccion>
  </Cliente>
</Clientes>

Equivalente en JSON

{
  "Clientes": {
    "Cliente": {
      "-ID": "283",
      "Nombre": "Juan Carlos Crespin",
      "Direccion": {
        "-verificada": "si",
        "Calle": "Avda Perú",
        "Numero": "235",
        "Ciudad": "Bahía Blanca",
        "Provincia": "Buenos Aires",
        "CodigoPostal": "8000",
        "Pais": "Argentina"
      }
    }
  }
}

Otro Ejemplo de XML

<persona>
    <nombre>juan</nombre>
    <edad>22</edad>
    <estudios>
        <estudio>primario</estudio>
        <estudio>secundario</estudio>
    </estudios>
</persona>

...y su equivalente en JSON

{
    "persona":{
       "nombre":"juan",
       "edad":22,
       "estudios":["primario","secundario"]
    }
}

Otro XML

<empleados>
    <empleado>
      <nombre>Jorge</nombre>
      <apellido>Mesa</apellido>
      <edad>28</edad>
    </empleado>
    <empleado>
      <nombre>Ana</nombre>
      <apellido>Sánchez</apellido>
      <edad>21</edad>
    </empleado>
    <empleado>
      <nombre>Pedro</nombre>
      <apellido>Lee</apellido>
      <edad>44</edad>
    </empleado>
  </empleados>

Equivalencia en JSON

{
  "empleados": {
      "empleado": [
           { "nombre":"Jorge" , "apellido":"Mesa", "edad":28 },
           { "nombre":"Ana" , "apellido":"Sánchez", "edad":21 },
           { "nombre":"Pedro" , "apellido":"Lee","edad":44 }
      ]
  }
}

Un XML que usa atributos

<libros>
  <libro id="1" year="1999">
     <autores>
         <nombre>Ricardo Pérez</nombre>
         <nombre>Marta Gómez</nombre>
     </autores>
  </libro>
</libros>

Equivalente en JSON

{
  "libros": {
    "libro": {
      "-year": "1999",
      "-id": "1",
      "autores": {
        "nombre": [
          "Ricardo Pérez",
          "Marta Gómez"
        ]
      }
    }
  }
}

Como podemos ver, si tenemos que transmitir estas estructuras por internet la notación JSON es más liviana. Otra ventaja es que a partir de la estructura JSON, podemos generar una variable Javascript que recree el objeto literal, mediante la función eval y asi la navegación y el recorrido es mucho más facil en el caso que usemos JSON. Para más información sobre este tema, vea Cómo parsear una variable JSON con JavaScript

Sin embargo el uso de eval() no es seguro, ya que puede generar problemas derivados de una incorrecta interpretación de nuestro código. Para una mejor comprensión de esto, vea el articulo publicado por Eric Lippert Eval is Evil (Artículo en inglés)

Existe un excelente convertidor en línea que convierte XML a JSON y viceversa. Para usarlo, visite la siguiente dirección: XML to JSON and JSON to XML converter online
respag   
Panamá © 2012
Haga su donación para colaborar con La Escuela del Programador

La Escuela del Programador es un sitio web sin anuncios, sin ánimo de lucro, no es un sitio web comercial. Es el sueño de compartir con todos, muchos años de una gran pasión. Si realmente encuentra este sitio útil y lo aprovecha, le pido su generosa y no importa cuán modesta colaboración, simplemente para afrontar los costos de mantener este sitio disponible en internet.
No deseo lucrar con este sitio, ya que lo hago desinteresadamente, sólo le pido que, si puede, aporte (desde un dólar hasta lo que crea que puede dar), para afrontar los costos de dominio y hosting. Muchísimas gracias y ojalá juntos podamos hacer un sitio que sea una buena fuente de aprendizaje de programacíon en español.

Si no se siente en condiciones de colaborar, igualmente será bienvenido al sitio, es libre para todos y será un placer que encuentre mis artículos provechosos, pero si realmente me ayuda con una donación minima, seguramente, colaborará para que La Escuela del Programador se mantenga en la Web y crezca, conviertiendo a este sitio hecho con mucha pasión, dedicación y esfuerzo, en una buena fuente de aprendizaje.

Mis saludos cordiales y gracias por interesarse en mi sitio.

Rubén E. Spagnuolo
respag
Panamá - © 2012