Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Blog / XML y JSON: Intercambiar información

XML y JSON: Intercambiar información

Luis del Valle Hernández

IntercambioDatos

A principios de los años 90 surgió el problema de que las maquinas pudieran entenderse entre si. Utilizaban diferentes sistemas operativos y sus programas estaban escritos en diferentes lenguajes de programación. Una de las soluciones fue crear el estándar XML y más tarde JSON, para a través de ellos poder intercambiar información entre las máquinas independientemente del sistema operativo o del lenguaje de programación con el que estuviera hecho el software.

Veamos que son y que nos ofrecen estos dos estándares:

XML (Extensible Markup Language):

Este estándar está desarrollado por la w3c y fue creado a partir del lenguaje SGML , con el fin de adecuarlo al uso web.

XML es uno de los formatos más utilizados para el intercambio de información entre sistemas. El formato de este estándar está basado en texto para representar información estructurada: datos, documentos, configuración, etc..

Un ejemplo:

<pieza tipo="A">
    <nombre>Tornillo</nombre>
    <descripcion>Cilindro mecanico con una cabeza utilizado en la fijación temporal de unas piezas con otras 
    </descripcion>
    <caracateristica>
        <tipo>metal</tipo>
        <tamanyo>10</tamanyo>
    </caracateristica>
    <vacio></vacio>
</pieza>

Si conoces HTML te resultara familiar, pero XML es más riguroso que HTML. Todas las etiquetas se deben cerrar, cosa que no es obligatorio en HTML y si existe un error en el XML las herramientas que los procesan darán error.

Si miras el ejemplo, tienes la información estructurada, se compone de partes bien definidas y esas partes a su vez se componen de otras. Fíjate en la etiqueta característica, es hija de la etiqueta inicial (raíz) pieza y a su vez tiene dos etiquetas hijas: tipo y tamaño. Al final lo que tenemos es un árbol con trozos de información o datos.

Una etiqueta es un elemento que puede tener contenido, más elementos o ambos, aunque también puede ser elementos vacíos (etiqueta vacio).

Una etiqueta siempre está entre los valores < y > y para cerrar esa etiqueta utilizamos </ >. También podemos encontrar atributos, como es el caso de nuestra etiqueta raíz pieza que tiene el atributo tipo. Los atributos son una manera de añadir propiedades a los elementos y el contenido debe ir entrecomillado. Todas las etiquetas pueden tener uno, ninguno o varios atributos.

Antes de pasar al otro estándar, mencionarte que existe otra recomendación de la w3c. Para definir los elementos que pueden existir en un determinado XML se utiliza documentos XSD (archivos DTD), en ellos definiremos todas las etiquetas y atributos que puedan existir en un determinado XML. Así con estos documentos sabremos los posibles elementos que nos puede devolver un determinado servicio web.

JSON (JavaScript Object Notation): 

Años más tarde salió este formato de intercambio de información más legible por el ser humano e igual de eficaz que XML para la comunicación entre maquinas. Este estándar esta mantenido por ECMAInternational y está basado en un subconjunto del lenguaje de programación JavaScript (ECMA-262). Como el anterior estándar es independiente del lenguaje de programación y del sistema operativo que lo ejecute.

Veamos el ejemplo anterior pero en JSON:

{
    “pieza”: {
        “tipo”: “A”
        “nombre”: “Tornillo”,
        “descripcion”: “Cilindro mecánico con una cabeza utilizado en la fijación temporal de unas piezas con otras”,
        “caracteristica”: {
            “tipo”: “metal”
            “tamanyo”: 10
        },
        “vacio”: “”
     }
}

JSON está construido por una colección de pares de nombre y valor o por una lista ordenada de valores. En muchos lenguajes de programación tenemos elementos parecidos como pueden ser los objetos, una estructura, un diccionario, un array….

Como puedes apreciar cada elemento u objeto comienza por una llave y termina con otra. Cada nombre esta seguido de dos puntos y los elementos que están en la misma rama del árbol están separados por coma.

Este formato es el que se suele utilizar en el los servicios web REST y en los últimos años le está comiendo el terreno que tenía ganado XML como fichero de intercambio, aunque muchos proveedores de APIs siguen encontrando valor a intercambiar datos en XML.

home assistant 2026.7

Automatizaciones Home Assistant 2026.7: por fin hablan en humano

¿Cuántas veces te has sentado delante del ordenador para hacer una triste automatización y has acabado queriendo tirar el teclado por la ventana? Eso … [+ info...]

comparativa home assistant y homey

Comparativa Home Assistant y Homey: qué sistema domótico comprar

Comparativa Home Assistant y Homey: si estás pensando en montar una casa inteligente de verdad, tarde o temprano te vas a encontrar con esta duda. ¿Me … [+ info...]

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.