JSON.parse()

Tradução em progresso.

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 objeto para uma descrição da sintaxe do JSON.
conversor Optional
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

Despeja 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 parâmetro 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 <coce>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.</coce>

O <code">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.</code">

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 vírgulas à 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 erro 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: FLR, v1ctorf, Francisaac, renanmedina
 Última atualização por: FLR,