(JavaScript Object Notation - Notación de Objetos de JavaScript).
Conceptos
Formato ligero para el intercambio de datos.
No requiere el uso de XML: eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C)).
Douglas Crockford, un experimentado ingeniero software, propuso un nuevo formato de datos construido sobre JavaScript llamado JSON, JavaScript Object Notation.
Notación para definir datos .
Tenemos que entender que diversos entornos necesitan comunicar los unos con los otros y salvar las barreras de incompatibilidad de los distintos lenguajes de programación.
Es un formato de texto que es completamente independiente del lenguaje.
Constitución:
Una colección de pares de nombre/valor (objeto ,registro,estructura).
Una lista ordenada de valores(arreglos,vectores ,listas o secuencias).
Estructura de Datos(Arreglos ).
Estas son estructuras universales; virtualmente todos los lenguajes de programación las soportan de una forma u otra.
Es razonable que un formato de intercambio de datos que es independiente del lenguaje de programación se base en estas estructuras.
En JSON,se presenta de estas formas:
Un objeto es un conjunto desordenado de pares nombre/valor.
Un objeto comienza con {(llave de apertura)} y se termina con llave de cierre }
Array :
Es una colección de valores. comienza [(corchete izquierdo) y termina con ] (corchete derecho).
Valores(Values):
Ejemplo JSON:
{
"menu":{
"id":"file",
"value":"File" ,
"popup": {
"menuitem": [
{ "value":"New","onclic": "CreateNewDoc"},
{ "value":"Open","onclic": "OpenDoc"},
{"value":"Close","onclic": "CloseDoc"},
]
}
}
}
XML Ejemplo:
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>
JSON es más abreviado que XML, los dos ejemplos tienen unos 190 caracteres cuando se eliminan los espacios en blanco.
Además, el uso de compresión GZIP para enviar los datos al navegador puede reducir la diferencia de tamaños entre ambos formatos.
De hecho, cuando se usa GZIP sobre los ejemplos anteriores el ejemplo en XML es más pequeño por 6 bytes.
El beneficio de JSON, entonces, no es que sea más pequeño a la hora de transmitir, sino que representa mejor la estructura de los datos y requiere menos codificación y procesamiento.