Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

JSON.parse (Función de JavaScript)

Convierte una cadena de la notación de objetos de JavaScript (JSON) en un objeto.

JSON.parse(text [, reviver])

text

Obligatorio. Una cadena JSON válida.

reviver

Opcional. Función que transforma los resultados. Se llama a esta función para cada miembro del objeto. Si un miembro contiene objetos anidados, estos se transforman antes que el objeto principal. Para cada miembro, ocurre lo siguiente:

  • Si reviver devuelve un valor válido, el valor del miembro se reemplaza con el valor transformado.

  • Si reviver devuelve el mismo valor que recibió, el valor del miembro no se modifica.

  • Si reviver devuelve null o undefined, el miembro se elimina.

Un objeto o matriz.

Si esta función causa un error de análisis de JavaScript (como "SCRIPT1014: Carácter no válido"), el texto de entrada no cumple la sintaxis de JSON. Para corregir el error, realice uno de estos procedimientos:

  • Modifica el argumento text para que sea conforme con la sintaxis de JSON. Para obtener más información, vea la sección Notación de sintaxis BNF de objetos JSON.

    Por ejemplo, si la respuesta está en formato JSONP en lugar de JSON puro, pruebe este código en el objeto de respuesta:

    var fixedResponse = response.responseText.replace(/\\'/g, "'");
    var jsonObj = JSON.parse(fixedResponse);
    
  • Asegúrese de que el argumento text se haya serializado con una implementación conforme a JSON, como JSON.stringify.

  • Ejecute el argumento text en un validador de JSON como JSLint para ayudar a identificar errores de sintaxis.

En el ejemplo siguiente se usa JSON.parse para convertir una cadena JSON en un objeto.

var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname + ", " + contact.firstname);

// Output: Aaberg, Jesper

En el ejemplo siguiente se convierte una matriz en una cadena JSON mediante JSON.stringify y, a continuación, se convierte la cadena de nuevo en una matriz mediante JSON.parse.

var arr = ["a", "b", "c"];
var str = JSON.stringify(arr);
document.write(str);
document.write ("<br/>");

var newArr = JSON.parse(str);

while (newArr.length > 0) {
    document.write(newArr.pop() + "<br/>");
}


// Output:
// ["a","b","c"]
// c
// b
// a

La función reviver se suele usar para transformar la representación JSON de las cadenas de fecha ISO en objetos Date con el formato de hora universal coordinada (UTC). En este ejemplo se usa JSON.parse para deserializar una cadena de fecha con formato ISO. La función dateReviver devuelve objetos Date para los miembros a los que se da formato como cadenas de fecha ISO.

var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';
var dates = JSON.parse(jsontext, dateReviver);
document.write(dates.birthdate.toUTCString());

function dateReviver(key, value) {
    var a;
    if (typeof value === 'string') {
        a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
        if (a) {
            return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
        }
    }
    return value;
};

// Output:
// Thu, 25 Dec 2008 12:00:00 UTC

Se admite en los siguientes modos de documento: estándar de Internet Explorer 8, estándar de Internet Explorer 9, estándar de Internet Explorer 10, estándar de Internet Explorer 11. También compatible con aplicaciones de la Tienda Windows (Windows 8 y Windows Phone 8.1). Vea Información de versión.

No se admite en los siguientes modos de documento: Interpretación, estándar de Internet Explorer 6, estándar de Internet Explorer 7.

Adiciones de comunidad

Mostrar:
© 2014 Microsoft