Lenguaje de Marcas y Sistemas de Gestión de Información.
(LMSGI)
ACTIVIDAD PRÁCTICA 6 (AP6)
Título
Introducción a JSON
Objetivos
• Conocer la sintaxis JSON como alternativa complementaria a XML en el intercambio de datos.
• Manipular objetos JSON mediante ejemplos de uso y casos prácticos.
Temporalización
Previsto: Dos semanas aproximadamente.
Proceso de desarrollo
INTRODUCCIÓN.
JSON significa JavaScript Object Notation. JSON almacena e intercambia información de texto, de una
manera similar a XML. Ocupa menos espacio que XML, además de ser más rápido y más fácil de analizar.
JSON está desplazando al XML en las aplicaciones web, debido a que los servicios online importantes (p.e.
Foursquare o Twitter) están orientando sus APIs hacia este formato, que se va convirtiendo en el estándar,
debido a su facilidad de uso, portabilidad y legibilidad.
JSON se considera un subconjunto de la notación literal para representar objetos, arrays, cadenas, booleanos y
números en Javascript. Su sintaxis específica se puede consultar en: https://www.json.org/json-es.html
Un ejemplo de sintaxis JSON es:
{
"empleados": [
{ "nombre":"Jorge" , "apellido":"Mesa", "edad":28 }, El objeto empleados es un arreglo de 3
objetos del tipo empleado, que guarda la
{ "nombre":"Ana" , "apellido":"Sánchez", "edad":21 },
información del nombre, el apellido y la
{ "nombre":"Pedro" , "apellido":"Lee","edad":44 } edad de cada empleado.
]
}
Algunas de las particularidades o reglas del formato JSON a tener en cuenta son:
• Los pares nombre-valor van siempre delimitados por comillas, independientemente de si se tratan de
nombres válidos en Javascript que podrían aparecer sin ellas.
• JSON puede representar seis tipos de valores: objetos, arrays, números, cadenas, booleanos y null.
• Las fechas no son reconocidas como un tipo de objeto propio.
• Los números en JSON no pueden ir precedidos de ceros salvo en el caso de notación decimal (ejemplo:
0.001).
• Como JSON es considerado un lenguaje independiente, sus objetos deben ser considerados como
cadenas Javascript, no como objetos nativos.
El planteamiento para trabajar este bloque temático es será desarrollar las siguientes TAREAS:
1
Lenguaje de Marcas y Sistemas de Gestión de Información. (LMSGI)
TAREA 1)
VISUALIZACION DE LOS VIDEOS EXPLICATIVOS DEL BLOQUE TEMÁTICO
Visualiza, en el orden establecido, los siguientes videos disponibles en la sección de RECURSOS DIDÁCTICOS
→ Transparencias / videos explicativos del bloque temático:
• Video 1. Introducción a JSON (Conceptos básicos).
• Video 2. Ejemplos de JSON y equivalencias con XML.
• Video 3. Utilización de conversores JSON / XML
• Video 4. Utilización de validadores de JSON.
• Video 5. Utilización de editores online para JSON.
• Video 6. Ejemplo 1 - utilización formato JSON – Servicio WEB (OpenWeatherMap)
• Video 7. Ejemplo 2 - utilización formato JSON – Servicio WEB (Aemet OpenData)
• Video 8. Ejemplo 3 - utilización formato JSON – Servicio WEB (datos abiertos – Gobierno de España)
• Video 9. Ejemplos Básicos de uso de JSON (análisis del código)
En la misma sección puedes descargar las transparencias utilizadas en los vídeos explicativos.
TAREA 2)
CONVERSIÓN DE ARCHIVOS (XML → JSON)
Recupera tu archivo XML que aportaste a la Actividad de Evaluación 1 o 2, donde diseñaste un archivo XML con
información de tu Currículum Vitae. Puedes utilizar el que consideres más completo. Convierte dicha
información a un formato JSON. Para ello puedes utilizar alguna de las diversas herramientas de conversión de
formatos analizadas en los videos de la Tarea 1.
El resultado final de la tarea debe contener los dos ficheros trabajados. El primer fichero será tu CV en formato
XML y el segundo fichero el resultante de la transformación a JSON. Puedes nombrarlos como cv.xml y cv.json,
comprimirlos en un formato ZIP o RAR para subirlos como resultado de la tarea 1.
TAREA 3)
TRATAMIENTO DE UN CONJUNTO DE DATOS JSON CON JAVASCRIPT
Realizar una aplicación en JS que visualice por terminal la siguiente información correspondiente al servicio de
estaciones de bicicletas (Valenbisi) existentes en la ciudad de Valencia:
• Nombre de la estación.
• Dirección de la estación.
• Coordenadas de situación de la estación (longitud y latitud).
Se desea esta información, sólo de aquellas estaciones que tengan 20 bornes o más. Un borne es un
aparcamiento individual para bicicleta.
Además, al finalizar la visualización de la información de las estaciones deberá informarnos también del número
total de estaciones con 20 bornes o más existentes en la ciudad.
Para poder resolver el problema se dan las siguientes recomendaciones:
1. Deberás acceder al servicio de datos abiertos (http://datos.gob.es/), buscar y descargar el conjunto de
datos en formato JSON correspondiente a las estaciones de Valenbisi. Se recomienda llamar al archivo
valenbisi.json.
2. Crea un archivo valenbisi.js donde realices la programación adecuada. Con tus conocimientos actuales
aprendidos en la asignatura de PROGRAMACIÓN, seguro estarás en disposición de crear el código
adecuado. Además, para poder tratar y leer los datos del archivo te proporciono el siguiente código. Si
lo copias y ejecutas podrás observar cómo se comporta el código y te servirá de pista para resolver el
problema. El archivo valenbisi.json deberá estar en el mismo directorio que el fichero fuente
(valenbisi.js):
2
Lenguaje de Marcas y Sistemas de Gestión de Información. (LMSGI)
A modo de ejemplo se muestra una posible visualización de las dos últimas estaciones (en mi ejecución me han
salido 156 estaciones, aunque recuerda que el conjunto de datos puede ser actualizado e ir variando, por lo que
tu resultado puede tener un número distinto de estaciones con 20 bornes o más):
Entrega de la tarea
Como resultado final de esta tarea deberás entregar 2 ficheros. Un fichero comprimido (cv.rar o cv.zip) que
contendrán tu CV en los dos formatos pedidos (cv.xml y cv.json), y un fichero comprimido (valenbisi.rar o
valenbisi.zip) con los archivos (valenbisi.json y valenbisi.js).
Evaluación
Esta actividad práctica no es una actividad de evaluación, pero debe estar entregada y realizada de forma
correcta para poder acceder y presentarse al examen individual del 1er cuatrimestre (a realizar durante la
semana de exámenes). Además, su realización forma parte del 10% de evaluación correspondiente al
seguimiento e interés de la asignatura por parte del alumnado.
Recursos
Disponibles en Recursos didácticos del Bloque 3:
▪ Videos explicativos utilizados.
▪ Material de apoyo en FloridaOberta
▪ Web oficial de JSON: http://www.json.org/json-es.html
3