Seleccionar página

Referencia de ECMAScript 5.1 – Objeto JSON

Índice

JSON | JSON.parse() | JSON.stringify()


JSON

Objeto JSON

JSON es un objeto predefinido en Javascript, no una función constructora, por lo que siempre debe ser utilizado como JSON.metodo() y no puede utilizarse new para crear nuevos objetos de este tipo.

ECMA-262 Edición 5

JSON.parse()

Convierte una cadena con formato JSON en un objeto.

Sintaxis

JSON.parse(texto [, funcionreviver])

texto

Texto con formato JSON que queremos transformar en un objeto Javascript.

[funcionreviver]

Función callback que es llamada por cada miembro del objeto. Si un miembro contiene objetos anidados, estos se transforman antes que el objeto primario. Para cada miembro:

  • Si la función devuelve un valor válido, el valor del miembro se reemplaza con el valor transformado.
  • Si la función devuelve el mismo valor que recibió, el valor del miembro no se modifica.
  • Si la función devuelve null o undefined, el miembro se elimina.

Devuelve un un objeto o una matriz.

Ejemplos

JSON.parse('{}');                  // {}
JSON.parse('{"nombre":"todojs"}'); // {'nombre': 'todojs'}
JSON.parse('[1, 5, "false"]');     // [1, 5, "false"]
JSON.parse('true');                // true
JSON.parse('null');                // null
JSON.parse('10');                  // 10
JSON.parse('"texto"');             // "text"

Las características de este miembro (tal y como la describe la función Object.getOwnPropertyDescriptor()) son:

{"writable": true, "enumerable": false, "configurable": true}
ECMA-262 Edición 5

JSON.stringify()

Convierte valor, objeto o matriz Javascript en una cadena con formato JSON.

Sintaxis

JSON.stringify(valor [, replacer] [, espacio])

valor

Cualquier valor de Javascript, normalmente un objeto o una matriz, que se va a convertir.

replacer

Función o matriz que transforma los resultados.

Si es una función, se llama a la función y pasa la clave y el valor de cada miembro. El valor devuelto se utiliza en lugar del valor original. Si la función devuelve undefined, el miembro se elimina. La clave del objeto raíz es una cadena vacía: "".

Si es una matriz, solo se convierten los miembros de la matriz que tienen valores de clave. El orden en que se convierten los miembros es el mismo que el de las claves de la matriz. La matriz replacer se omite cuando el argumento valor también es una matriz.

espacio

Agrega sangría, espacio en blanco y caracteres de salto de línea al texto JSON del valor devuelto, para que sea más fácil de leer. Si se omite el texto del valor devuelto se genera sin ningún espacio en blanco adicional.

Si espacio es un número, se aplica al texto devuelto se le aplica una sangría con el número especificado de espacios en blanco en cada nivel.

Si espacio es una cadena no vacía al texto devuelto se le aplica una sangría con los caracteres de la cadena en cada nivel.

Ejemplos

JSON.stringify({});                  // '{}'
JSON.stringify({"nombre":"todojs"}); // '{'nombre': 'todojs'}'
JSON.stringify([1, 5, "false"]);     // '[1, 5, "false"]'
JSON.stringify(true);                // 'true'
JSON.stringify(null);                // 'null'
JSON.stringify(10);                  // '10'
JSON.stringify("texto");             // 'text'

Las características de este miembro (tal y como la describe la función Object.getOwnPropertyDescriptor()) son:

{"writable": true, "enumerable": false, "configurable": true}
ECMA-262 Edición 5