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. Ajude atraduzir 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. |
Standard | Definição inicial. Implementado no JavaScript 1.7. |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'JSON.parse' in that specification. |
Standard |
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