Programar fácil con Arduino

Programar fácil con Arduino, entiende cómo funciona el mundo.

  • Blog
  • ¿Quién soy?
  • Podcast
  • Curso Arduino [GRATIS]
  • Curso Domótica [GRATIS]
  • 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:

1
2
3
4
5
6
7
8
9
10
<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:

1
2
3
4
5
6
7
8
9
10
11
12
{
    “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.

integraciones de Home Assistant

Integraciones de Home Assistant

En este tutorial voy a hablar de las integraciones de Home Assistant pero antes déjame contarte la historia de Jack, un norteamericano de bien, de los … [+ info...]

dispositivos inteligentes para el hogar

Tipos de dispositivos inteligentes para el hogar

En este artículo voy a hablar de los dispositivos domóticos o dispositivos inteligentes para el hogar que pueden ser integrados dentro de Home … [+ info...]

osciloscopios

Osciloscopio para proyectos con Arduino

Una imagen vale más que mil palabras. Seguro has escuchado esta frase alguna vez y es probable que en la mayoría de las ocasiones lo que dice sea … [+ info...]

Copyright © 2023 · Programar Fácil · Aviso legal

Utilizamos cookies propios y de terceros para mejorar nuestros servicios y experiencia de usuario. Si continua navegando, consideramos que acepta su uso.Aceptar Política de privacidad y cookies
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR