JSON viene de las siglas (JavaScript Object Notation) que en español seria Notación de Objetos JavaScript que es parte de estructura de datos del lenguaje propiamente dicho. Pues es un formato simple y sencillo para transportar información con gran potencial y rapidez.

Es muy utilizado para las Web Services como Api REST. Podemos pensarlo como un base de datos minimalista no relacional, la cual ha sido como fuente de inspiración en proyectos de mucha relevancia como MongoDB.

Características:

  • Fácil de leer
  • Formato simple y sencillo
  • Mas ligero y veloz que el formato XML
  • Se usa el formato como intercambio de dato entre diferentes lenguajes de programación
  • Nace como la necesita de un Standard por Douglas Crockfor

Similares a JSON:

  • YAML
  • SO XML
  • OGDL
  • S Expression
  • Plist

Objetos JavaScript y Objetos JSON

  • Conjuntos de pares “clave” : “valor”
  • Secuencia ordenada de valores

Estructura de Objeto JavaScript:

Suele ser menos restrictiva, no es obligatorio poner entre comillas dobles los nombres claves del objeto, y usamos la notación de camello (primera palabra minúscula mas las siguientes en mayúsculas la primera letra) para los que tienen mas de un nombre. Y tampoco podemos usar funciones en JSON.

var variable = {nombre : "Roger Natividad"};

var variable = {
	nombre : "Roger Natividad",
	getNombre : function(){
		console.log(nombre);
	}
}

JSON y en los Lenguajes de Programación:

Como es sabido JSON nacio propiamente en JavaScript pero luego viendo sus virtudes y bondades que ofreció un objeto JSON de JavaScript para intercambiar datos entre diferentes lenguajes de programación.

Dicho lenguajes comenzaron a crear desde su núcleo sus propias funcionas para el tratamiento de información en formato JSON.

Implementado con PHP:

PHP es un lenguaje de scripting que se ejecuta en lado del servidor para hacer operaciones con datos para hacer las paginas web dinámicas.

Funciones:

  • json_encode($dato) : función nativa para convertir un objeto nativo propio a un formato JSON.
  • json_decode( $dato, [$bool]) : función nativa para convertir un formato JSON a un objeto en PHP.

Aquí convertimos un JSON a objeto de PHP:

<?php

$dato = '{
			"nombre":"Roger Natividad",
			"numero":533,
			"profesor":true,
			"idCursos":[12, 13, 15],
			"cursos":{
				"marketing":"Mi primera aplicacion movil",
				"programacion":[
					"JavaScript",
					"PHP",
					"Ruby",
					"Python",
					"Java"
				]
			},
			"vacaciones":null

		}';

print_r (json_decode($dato, true) );

Aquí convertimos de PHP a un archivo de cadena en JSON:

<?php

$datos = array ( 
    "nombre" => "Roger Natividad",
    "numero" => 533,
    "profesor" => true,
    "idCursos" => array (12, 2, 15 ), 
    "cursos" => array (
             "marketing" => "Mi primera aplicacion movil", 
             "programacion" => Array ( 
                     "JavaScript",
                      "PHP",
                       "Ruby",
                      "Python",
                      "Java"
                       )),
     "vacaciones" => null
     );

echo json_encode($datos);

Implementado con Python:

Python es un lenguaje interpretado de múltiples paradigmas (orientada a objetos, estructural, funcional) para hacer aplicaciones de consola o aplicaciones GUI, videoJuegos, Big Data, machine learning, data sciense y paginas Web dinámicas usando el framework DJango.

Funciones:

  • json.dumps(datos) : convierte un objeto nativo al formato JSON.
  • json.loads(datos) : convierte una cadena JSON a un objeto de Python.

Implementado con Android:

Para Android usamos Java un lenguaje de programación 100% orientada a objetos creado por la antigua empresa Sun MicroSystem a cargo de James Gosling en el 1995 para crear aplicaciones en diversidad de equipos electrónicos, paginas web, aplicaciones de escritorio, videosJuegos, aplicaciones móviles.

Para usar JSON debe importar la librería.

import org.json.JSONObject;

Clases y Funciones:

  • JSONObject([objetoJSON]) : clase para instanciar un objeto y comenzar a crearlo.
  • jsonObject.put(propiedad, valor) : método para agregar clave u valor
  • jsonObject.toString() : método para convertir a cadena JSON de un objeto de Java.
  • jsonObject.getString(clave) : devuelve el valor de la propiedad pasado como argumento del objeto.

Herramientas para trabajar con JSON:

  • JSON : documentación en español sobre el formato, estructura y las implementaciones de lenguajes de programación con JSON.
  • JsonEditorOnline : herramienta online para manipular un formato JSON de forma mas ordenada y legible.
  • jSONLint : es un validador online si el formato JSON esta correcto si no lo esta ayuda dando pistas para corregir.
  • JsonParserOnLine : excelente herramienta que nos permite el mostrar el modo de visualización (colores, tipos de datos, minificado, mostrando indices de array).
  • XML to JSON : una herramienta genial para convertir un formato de JSON a XML y viceversa.
  • JSON to CSV : excelente herramienta para convertir un formato JSON a CSV y poder descargarlo pero tiene un limite y es de pago
  • JSON to CSV Coverter : la misma herramienta que convierte de formato JSON y CSV pero es completamente gratis y permite descargar sin limites.
  • JSON Formatter : un validador de formato JSON y permite formatear mas ordenado y legible.

Asíncrono o Síncrono

Como es sabido peticiones asíncronos que se envían con la cabeceras HTTP al servidor web que necesita encontrar los recursos solicitados que usa cualquier cualquier lenguaje de programación con una Base de Datos y enviar al navegador del cliente para mostrar mostrar la respuesta en dicha pantalla.

En cambio el modo de petición síncronos necesita cargar y refrescar toda la pagina para cargar los datos en la pagina.

Pero mas se usa las peticiones Asíncronos para así evitar el consumo de recursos a esto lo llamamos AJAX (Asíncrono JavaScript XML) se popularizo en el 2009 gracias a Internet Explorer, pero hoy en día para el intercambio de datos se usa JSON mas rápido y ligero a diferencia que el XML.