El formato JSON (Javascript Object Notation) es un formato popular para la representación de estructuras de datos en ficheros de texto que son fáciles de leer y escribir tanto por un ser humano como por un programa, tanto si está escrito en Javascript como si está escrito en Perl, PHP, o numerosos otros lenguajes de programación.
Actualmente las aplicaciones Web son cada vez más interactivas centradas en los datos, y existen nuevas técnicas para hacer estas aplicaciones de forma más eficiente. Un gran avance en esta área fue la llegada de AJAX (Asynchronous JavaScript y XML). Desde entonces, los desarrolladores han conseguido nuevas herramientas para exprimir aún más el rendimiento y la eficiencia de cada byte. Una forma de lograrlo ha sido el uso de JSON.
La especificación de este formato se puede consultar en la web www.json.org , la mejor manera de describirlo es quizá mediante un ejemplo:
Primero vamos a entender lo que es JSON y lo que no lo es. El estándar formal internacional para JSON es RFC 4627. Douglas Crockford, el autor de la JSON (JavaScript Object Notation) describe JSON como un intercambio de datos en formato ligero y se basa en dos ideas clave:
- Un conjunto de pares (clave,valor) encerrado entre los caracteres “{” y “}”, separando la clave del valor por el símbolo “:”, y separando cada par del siguiente con el carácter “,”
- Un conjunto ordenado de valores encerrado entre los caracteres “[” y “]”, y separando cada valor del siguiente con el carácter “,”.
Por otra parte, el valor de un par (clave, valor) puede ser un elemento simple (cadena de caracteres o número) o bien una estructura de datos. Esto permite representar estructuras de una complejidad arbitraria.
Por ejemplo, la estructura del ejemplo de arriba podría ser parte de un documento JSON más complejo, como valor asociado a una clave en una estructura de nivel superior:
Dado que estas características existen en casi cualquier lenguaje de programación importante (lo que conocemos como arreglos), esto hace que JSON es una buena solución para muchas plataformas de desarrollo.
En este caso, la estructura principal es un conjunto de pares (clave,valor) con claves “responsable” y “empleados”.
El valor de la clave “responsable” es un conjunto de pares (clave, valor), mientras que el valor de la clave “empleados” es un array que contiene dos elementos, cada uno de los cuales, a su vez, es una estructura de pares (clave, valor)
JSON es a menudo descrito como un subconjunto de JavaScript, pero JSON en sí no es un lenguaje. Tampoco es un formato de documento tan completo como un XML. JSON es una forma de almacenar información en forma organizada, de fácil acceso así. Es a la vez humana y legible por las computadoras y se analiza con facilidad. Lo más importante es JSON es un proceso abierto, basado en texto formato de intercambio de datos que proporciona simplicidad e independencia del lenguaje de programación. Al momento de considerar las nuevas tecnologías para sus aplicaciones, es posible que desee saber si la tecnología está siendo utilizada por otras personas. ¿Quién está utilizando JSON actualmente? En primer lugar el creador de esta tecnología Douglas Crockford es el arquitecto senior de Yahoo JavaScript. Twitter ha cambiado recientemente el uso de XML a JSON para su API. The Google Web Toolkit también trabaja con JSON. La norma oficial para JSON se encuentra bien documentada y actualmente está creciendo rápidamente su uso en toda la industria, lo cual da mucha seguridad al momento de considerarla como una tecnología útil para nuevos desarrollo.
Por supuesto, nadie debe utilizar una tecnología sólo porque este de moda. ¿Por qué debe usted utilizar JSON? La mayoría de las definiciones de JSON enfatizan que es ―ligera‖. ¿Qué significa eso? En comparación con XML, el porcentaje de contenido / volumen con JSON es mucho menor. Esto significa que es más pequeño y menos complejo de generar o recuperar y fácil de leer. Eso se traduce en tiempos de carga más rápidos para las páginas web y la posibilidad de enviar más datos, más rápidamente que con otros formatos de datos
Codificación de caracteres
Un punto importante de la especificación es que las cadenas de caracteres deben estar codificadas en Unicode (por ejemplo, UTF-8)