JSON.parse()

Houve um erro de script nesta página. Enquanto este erro é encaminhado para os editores do site, você pode ver o conteúdo parcial abaixo.

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

Sumário

O método JSON.parse() converte uma string para JSON, opcionalmente transformando o valor produzido por conversão.

Sintaxe

JSON.parse(texto[, conversor])

Parâmetros

texto
O texto a ser convertido para JSON. Veja a JSON object para uma descrição da sintaxe do JSON.
conversor {{ opcional }}
Se for uma função, define como a string é convertida antes de ser retornada pela conversão.

Retornos

Retorna o Object correspondente para o JSON texto.

Throws

Depeja uma exceção do tipo SyntaxError se a string à ser convertida não é um JSON válido.

Exemplos

Exemplo: 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

Exemplo: Usando o parametro conversor

Se um conversor é especificado, o valor calculado pelo conversor é transformado antes de ser retornado. Especificamente, o valor calculado,  e todas as suas propriedades (começando pelas propriedades mais intrínsecas, depois partindo para os valores em si), são individualmente executados pelo conversor,  Que é chamado com o objeto contendo a propriedade sendo processada como this  e com o nome da propriedade como string e o valor da propriedade como argumentos. Se a função  conversor retornar undefined (ou retornar nenhum valor, e.g. Se a execução cair no final da função), A propriedade é deletada do object. Caso contrário a propriedade é redefinida para ser retornada como valor.

O conversor é  chamada com a string vazia e o valor mais importante para permitir a transformação do valor mais importante. Esteja seguro de tratar este caso corretamente, geralmente retornando o valor fornecido , ou JSON.parse() irá retornar undefined.

JSON.parse('{"p": 5}', function(k, v) {
  if (k === '') { return v; } // se o valor mais importante, retorne-o,
  return v * 2;               // senão return v * 2.
});                           // { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function(k, v) {
  console.log(k); // exibe o log do nome da propriedade atual, a ultima propriedade é "".
  return v;       // retorna os valores sem nenhuma alteração.
});

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

Exemplo: JSON.parse() não permitido virgulas à direta 

// Ambos irão despejar uma exception do tipo SyntaxError
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse("{ \"foo\" : 1, }");

Especificações

Especificação Status Comentário
ECMAScript 5.1 (ECMA-262)
The definition of 'JSON.parse' in that specification.
Padrão Definição inicial. Implementado no JavaScript 1.7.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'JSON.parse' in that specification.
Padrão  

Compatibilidade dos navegadores

Função Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte Básico (Yes) 3.5 (1.9.1) 8.0 10.5 4.0
Função Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte Básico (Yes) (Yes) 1.0 (1.0) (Yes) (Yes) (Yes)

Baseado na tabela compat Kangax's.

Gecko-notas de especificações

Começando Gecko 29 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26), uma string JSON mal formada rende uma mensagem de erro mais detalhada contendo o número da linha e da coluna que causou o error de conversão. Isto é útil quando debugar um JSON grande.

JSON.parse('[1, 2, 3,]');
// SyntaxError: JSON.parse: caracter inesperado
// linha 1 coluna 10 do dado JSON

Veja Também 

Etiquetas do documento e colaboradores

 Colaboradores desta página: v1ctorf, Francisaac, renanmedina
 Última atualização por: v1ctorf,