Introduccin a JSON
JSON (JavaScript Object Notation - Notacin de Objetos de JavaScript) es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las mquinas es simple interpretarlo y generarlo. Est basado en un subconjunto del Lenguaje de Programacin JavaScript, Standard ECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es completamente independiente del lenguaje pero utiliza convenciones que son ampliamente conocidos por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos. JSON est constitudo por dos estructuras:
Una coleccin de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo. Una lista ordenada de valores. En la mayora de los lenguajes, esto se implementa como arreglos, vectores, listas o sequencias.
Estas son estructuras universales; virtualmente todos los lenguajes de programacin las soportan de una forma u otra. Es razonable que un formato de intercambio de datos que es independiente del lenguaje de programacin se base en estas estructuras. En JSON, se presentan de estas formas: Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor estn separados por , (coma).
Un arreglo es una coleccin de valores. Un arreglo comienza con [ (corchete izquierdo) y termina con ] (corchete derecho). Los valores se separan por , (coma).
Un valor puede ser una cadena de caracteres con comillas dobles, o un nmero, o true o false o null, o un objeto o un arreglo. Estas estructuras pueden anidarse.
Una cadena de caracteres es una coleccin de cero o ms caracteres Unicode, encerrados entre comillas dobles, usando barras divisorias invertidas como escape. Un carcter est representado por una cadena de caracteres de un nico carcter. Una cadena de carateres es parecida a una cadena de caracteres C o Java.
Un nmero es similar a un nmero C o Java, excepto que no se usan los formatos octales y hexadecimales.
Los espacios en blanco pueden insertarse entre cualquier par de smbolos. Exceptuando pequeos detalles de encoding, esto describe completamente el lenguaje.