JSON.parse()

Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

Resumen

El método JSON.parse() analiza una cadena de texto como JSON, transformando opcionalmente  el valor producido por el análisis.

Sintaxis

JSON.parse(text[, reviver])

Parámetros

text
El texto que se convertirá a JSON. Vea el objeto JSON para una descripción de la sintaxis JSON.
reviver Optional
Si una función, prescribe cómo se transforma el valor producido originalmente por el parsing, antes de retornar.

Returns

Retorna el objeto que se corresponde con el texto JSON entregado.

Exceptions

Lanza una excepción SyntaxError si la cadena a transformar no es un JSON válido.

Ejemplos

Ejemplo: Usando JSON.parse()

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

Ejemplo: Usando el parámetro reviver

Si se especifica un reviver, el valor computado por el parsing es transformado antes de retornar. Específicamente, el valor computado, y todas sus propiedades (comenzando con las propiedades más anidadas y siguiendo al propio valor original), son individualmente ejecutados a través del reviver, el cual es llamado con el objeto que contiene la propiedad que está siendo procesada como this y con el nombre de la propiedad como cadena y el valor de la propiedad como argumentos. Si la función reviver retorna undefined (o no retorna algún valor, por ejemplo: si la ejecución cae el final de la función), la propiedad es eliminada del objeto. De otra manera, la propiedad es redefinidad para ser el valor de retorno.

El reviver es llamada último con la cadena vacía y el valor más alto para permitir la transformación del valor más alto. Asegúrese de manejar este caso adecuadamente, por lo general mediante la devolución del valor proporcionado, o JSON.parse will retorna undefined.

JSON.parse('{"p": 5}', function (k, v) {
    if(k === "") return v;     // if topmost value, return it,
    return v * 2;              // else return v * 2.
});                            // { p: 10 }

JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', function (k, v) {
    console.log(k);            // log the current property name, the last is "".
    return v;                  // return the unchanged property value.
});

// 1
// 2
// 4
// 6
// 5
// 3 
// ""

Especificaciones

Especificación Estado Comentario
ECMAScript 5.1 (ECMA-262)
The definition of 'JSON.parse' in that specification.
Standard Definición inicial.
Implementado en JavaScript 1.7.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'JSON.parse' in that specification.
Standard  

Compatibilidad de navegadores

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte básico (Yes) 3.5 (1.9.1) 8.0 10.5 4.0
Característica Android Chrome para Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte básico (Yes) (Yes) 1.0 (1.0) (Yes) (Yes) (Yes)

Based on Kangax's compat table.

Especificaciones Gecko

Comenzando con Gecko 29 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26), unas malformados cadenas JSON produce un mensaje de error más detallado que contiene el número de línea y columna que provocó el error de parsing. Esto es útil cuando se está haciendo debug de un JSON grande.

JSON.parse('[1, 2, 3,]')
// SyntaxError: JSON.parse: unexpected character at 
// line 1 column 10 of the JSON data

Véase también

Etiquetas y colaboradores del documento

 Colaboradores en esta página: aminguez, mbarbancho, rossif, PepeBeat
 Última actualización por: aminguez,