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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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,