36 Formato JSON

El formato JSON (JavaScript Object Notation) es un formato abierto utilizado como alternativa al XML para la transferencia de datos estructurados entre un servidor de Web y una aplicación Web. Su lógica de organización tiene puntos de semejanza con el XML, pero posee una notación diferente. El formato ganó popularidad en servicios de la Web, como clientes de correo electrónico y páginas de compras, dado que consigue transmitir una gran cantidad de información entre el cliente y el servidor utilizando una menor cantidad de caracteres.

Los archivos JSON también trabajan con pares de atributos y valores, y en vez de marcadores, como en el XML, utilizan delimitadores en cadenas: {}, []; y "". Un típico archivo JSON queda estructurado de la siguiente manera:

{
 "localidade 1": {
  "Continente": "África",
  "País": "Angola",
  "Capital": "Luanda"
 },
 "localidade 2": {
  "Continente": "América do Norte",
  "País": "Estados Unidos",
  "Capital": "Washington DC"
 },
 "localidade 3": {
  "Continente": "América Central",
  "País": "México",
  "Capital": "Cidade do México"
 },
 "localidade 4": {
  "Continente": "América do Sul",
  "País": "Brasil",
  "Capital": "Brasília"
 },
 "localidade 5": {
  "Continente": "Europa",
  "País": "Espanha",
  "Capital": "Madri"
 },
 "localidade 6": {
  "Continente": "Europa",
  "País": "Alemanha",
  "Capital": "Berlim"
 },
 "localidade 7": {
  "Continente": "Oceania",
  "País": "Austrália",
  "Capital": "Camberra"
 },
  "localidade 8": {
  "Continente": "Ásia",
  "País": "Japão",
  "Capital": "Tóquio"
 }
}

El delimitador { marca el inicio de una sección, y el } marca su finalización. Los pares de valor y atributo están separados por : y sus valores, cuando se trata de texto, se expresan entre comillas (los números, por ejemplo, no reciben comillas). En el ejemplo de abajo, la "localidad 6" es un atributo que recibe una serie de valores (Continente, País y Capital):

"localidade 6": {
  "Continente": "Europa",
  "País": "Alemanha",
  "Capital": "Berlim"
},

Obsérvese que el valor de la "localidad 6" es un nuevo conjunto de pares atributo-valor. Ese nuevo conjunto se inicia a partir del delimitador { y finaliza con }. La lógica de encadenar conjuntos de pares puede ser repetida innumerables veces, creando así diversos niveles para la estructura de datos deseada.