Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguaje JSON
Contacto duduromeroa@gmail.com
Aclaraciones
Contenido para quienes ya comprenden y practican HTML, CSS y JS. Adjunto bibliogra-
fía al final de esta página.
En casi todos los ejercicios expongo código y comentarios. Puedes revisarlo en: (click
derecho en esta página desde mouse > Inspect Element > sources ).
Lenguaje JSON
JSON vs XML
Al igual que el lenguaje XML, JSON usa su sintaxis para alojar datos, darles or-
den, jerarquías y facilidad de intercambio entre equipos y otras tecnologías.
JSON está considerado como una mejor opción en comparación a XML. Los
más fieles a JSON argumentan que es más sencillo de organizar, de leer, de edi-
tar y de añadir categorías de datos (como arreglos y objetos, pero sin métodos);
mientras que XML necesita de una etiqueta de cierre con cada elemento que se
añade, y el usuario debe agregar por sí mismo el significado de cada etiqueta. Lo
que puede ser una ayuda o un problema según las necesidades de intercambio
de datos que se desee cubrir.
¿Cuál es mejor?
¿Qué sintaxis usar para alojar, estructurar o recuperar datos entre sistemas de
forma sencilla? Mi respuesta es que cualquiera de los dos puede servir siempre
que se los conozca a fondo, se los use en casos reales y se confirme su
flexibilidad.
¿Cuál prefiero?
{ // Abre Raíz
// OBJETO
"equipos": {
// "Propiedad": "valor"
"Emelec": "campeón",
"Barcelona": "campeón",
"LigaQ": "campeón"
}
} // Cierra Raíz
Es clave identificar los tipos de signos que encierran los cuerpos de un objeto
(llaves curvas) o de un arreglo (llaves rectas). En el ejemplo de abajo, cambia-
mos a llaves rectas y eliminamos los valores de cada elemento para así, conver-
tirlo en un arreglo.
{ // Abre raíz
// Abre arreglo
"equipos": [
"Emelec",
"Barcelona",
"LigaQ"
]
} // Cierra raíz
Para evaluar si tu objeto JSON está bien estructurado puedes usar validadores
como https://jsonlint.com para detectar errores y corregirlos.
Para anidar arreglos u objetos dentro de otros, tener atención en los cierres:
{ // Abre raíz
"propiedad_A": "aaaa", "propiedad_B": "bbb",
// Arreglo con objeto
"propiedad_ArregloA": [
{
"a": "dato", "b": "00", "c": "dato",
// Arreglo
"propiedad_ArregloA": [
"datoA", "datoB", "datoC"
]
}
]
}
El código anterior está agrupado en un par de llaves padre (abajo, línea amari-
lla). Observar que los objetos usan llaves curvas o {...} y los arreglos llaves
rectas o [...]; y en toda composición JSON siempre el último elemento (abajo,
flecha blanca) no deberá finalizar en coma.
- Abajo. Un primer par de llaves agrupará el elemento raíz (root) del objeto
JSON.
{
"root": "..."
}
{
"root": "...",
"propR_A": "..."
}
- Abajo. Dentro de las llaves de la raíz creamos la primera rama (como tipo de
dato arreglo o array); aún sin propiedades en forma de elementos. ¿Y sus valo-
res? Esa pregunta esta errada.
En JSON
{
"root": "...",
"propR_A": 100,
"rama1": [ ]
}
Abajo. Ahora sí empezamos a llenar (la jerga informática le llama poblar) al arre-
glo. Es decir, agregamos al arreglo 'rama' los datos necesarios en forma de
elementos:
{
"root": "...",
"propR_A": 100,
"rama1": [
"prop1",
"300",
"true"
]
}
Abajo. Creamos una segunda rama como tipo arreglo. Recordemos que cada
nueva rama debe estar separada por una coma; y dos ramas no pueden conte-
ner un mismo nombre identificador.
{
"root": "...", "propR_A": 100,
"rama1": ["prop1", "300", "true"],
"rama2": ["prop2", "600", "false"]
}
Abajo. Agreguémos ahora un dato tipo objeto con el nombre 'rama3'. En sintaxis
de Javascript los objetos contienen elementos con valores duales. Es decir, con
una propiedad y su valor correspondiente.
En JSON
{
"root": "...",
"propR_A": 100,
Abajo. Agreguémos ahora un dato tipo objeto con el nombre 'rama3'. En sintaxis
de Javascript los objetos contienen elementos con valores duales. Es decir, con
una propiedad y su valor correspondiente.
Abajo. Insertado (la jerga informática le llama anidado) en 'rama3' añadimos una
subrama tipo arreglo conteniendo tres elementos: elem3xa, elem3xb y un tercer
elemento en forma de objeto con dos propiedades y sus valores. Escondí las
ramas 1 y 2 para que el nuevo inserto se note con claridad.
En JSON
{
"root": "...",
"propR_A": 100,
"rama1": ["prop1", "300", "true"],
"rama2": ["prop2", "600", "false"],
"rama3": {
"prop3a": "valor",
"prop3b": 100,
"prop3c": "false",
"subRama3x": [
"elem3xa", "elem3xb",
{ "objeto3xd1": "200", "objeto3xd2": "300" }
]
}
}
Objetos vs arreglos
La sintaxis "nombre":["elementoA", "elementoB"] es un arreglo. Solo los
arreglos contienen elementos sin valores.
La sintaxis "nombre":{"propiedadA":"valorA"} es un objeto. Solo los
objetos contienen elementos pares. Estos son propiedades junto con valores.
Uso de llaves
El primer par de { } abre el objeto raíz
Un par { } abre un objeto
Un par [ ] abre un arreglo
Subelementos
Un objeto puede contener más arreglos.
Un arreglo puede contener más objetos siempre cada objeto esté agrupado entre
llaves { }.
En JSON
{
"PADRE": "valor",
// Rama
"objetoA":
// SubRama
{"ob1": "...","ob2": "..."},
// Rama
"objetoB":
// SubRama
{"ob3": "...", "ob4": "..."},
// Rama
"arregloA":
// SubRama
[{"ob3": "...","ob4": "..."}]
}
Vale aquí hacer una pausa y revisar el correcto inserto de datos tipo arreglo y
elementos; y objetos con valores pares. En la siguiente sección ensayaré cómo
usar esos datos de forma funcional.
El siguiente ejemplo lo tomé de la mdn web docs_ de Mozilla. Pero luego ensa-
yaré otros y así mostrar la flexibilidad de JSON, especialmente en gráficos
informativos.
En JSON
{ // Abre Raíz
// OBJETO
"equipos": {
// "Propiedad": "valor"
"Emelec": "campeón",
"Barcelona": "campeón",
"LigaQ": "campeón"
}
} // Cierra Raíz
En HTML
Luego, desde JS debemos empezar a definir las variables que van a apuntar a
esos elementos:
En Javascript
// Elemento <p>
var elem1x = document.querySelector(".elem1");
// Elemento <p>
var elem2x = document.querySelector(".elem2");
API que obtiene datos desde un equipo cliente hacia un servidor, y los lleva ha-
cia el cliente. Es decir, esta API abre las puertas entre computador y servidor
para permitir intercambiar bits entre sí. Explicaré más a profundidad esta impor-
tante API en otra sección. Por ahora, nos limitaremos a obtener datos desde
XMLHttpRequest hacia JSON y de allí hacia un sitio web.
En Javascript
En Javascript
Esta propiedad le 'afirma' al código el tipo de dato que queremos obtener desde
el servidor. Entre esos tipos de datos están texto, imágenes o documentos.
En Javascript
En Javascript
Luego, deben mostrarse lo datos obtenidos del JSON en los contenedores HTML
ya definidos en el sitio web. Donde solo los datos (en forma de textos) con fondo
azul son los obtenidos desde el objeto JSON. Y si son actualizados esos datos
desde el objeto JSON, serán mostrados actualizados aquí.
BARCELONA
primer lugar
EMELEC
segundo lugar
Emelec
Barcelona
BIBLIOGRAFÍA:
https://www.duduromeroa.com | 2024
duduromeroa@gmail.com | Guayaquil, Ecuador