JSON

Qué es JSON

logotipo de JSONJSON (JavaScript Object Notation) es un formato de texto pensado para el intercambio de datos. Su sintaxis está basada originalmente en la sintaxis de JavaScript, pero realmente es independiente de cualquier lenguaje de programación.

El formato JSON fue definido por Douglas Crockford a finales de 2002 y dado a conocer a través de su página web http://json.org/. Esta página contenía la definición del formato y una implementación en Java. En poco tiempo el uso del formato se extendió y aparecieron implementaciones para todos los lenguajes de programación. El motivo de su éxito es su sencillez y facilidad de uso.


El formato JSON se ha publicado además en forma de norma, tanto por la IETF como por ECMA, que también han definido otros formatos derivados como I-JSON.

Fechas de publicación de normas del formato JSON 2000 2005 2010 2015 2020 json.org RFC 4627 RFC 7158 ECMA 404 RFC 7159 RFC 8259 ECMA 404 (2º ed)

Las últimas versiones de las normas son las siguientes:

Sintaxis de JSON

Las reglas sintáctica de JSON son bastante sencillas:

Usos de JSON

JSON se utiliza cada vez más en la web como sintaxis para usos concretos.

JSON-RPC: JSON Remote Procedure Call

En informática, los procedimientos remotos son una característica de los sistemas distribuidos. En un programa está distribuido entre varios ordenadores, los procedimientos remotos permiten que una parte del programa ejecute otra parte del programa situada en otro ordenador de forma transparente, es decir, sin que el programador se tenga que preocupar de dónde está situada cada parte.

En general, cuando que un programa solicita información a otro programa situado en otro ordenador podemos decir que se trata de una llamada a un procedimiento remoto, aunque los dos programas sean completamente independientes.

JSON-RPC es un formato para el intercambio de información entre dos programas. Utiliza la notación JSON y define una estructura y unos campos mínimos útiles para dar formato tanto a la petición como a la respuesta.

Existen dos versiones de JSON-RPC, pero se recomienda utilizar la segunda versión:

Una llamada RPC tiene que seguir la sintaxis de JSON y contener los siguientes campos:

Si una llamada no incluye identificador id, se considera que es una notificación y no requiere respuesta, ni siquiera en caso de error.

La respuesta RPC tiene que seguir también la sintaxis de JSON y contener los siguientes campos:

Una llamada JSON-RPC puede contener varias peticiones en forma de matriz y se debe contestar con una matriz de respuestas (salvo que todas las llamadas sean notificaciones, en cuyo caso no habría respuesta).

Ejemplos de llamada y respuesta:

JSON-LD: JSON Linked Data

JSON-LD es un formato desarrollado por el W3C y que utiliza la sintaxis de JSON para representar información referida a un elemento (un objeto, una persona, etc.). La información que se ofrece en un bloque de datos JSON-LD sobre un elemento consiste en una lista de características de ese elemento.

Grupo de trabajo JSON-LD en el W3C: Homepage - Charter: 2018-2020

Recomendaciones publicadas:

Otros

Versiones obsoletas

Las versiones obsoletas de las normas sobre JSON son las siguientes:


Otros usos de JSON


Referencias