Baseline Widely available *
O método JSON.parse()
analisa uma string JSON, construindo o valor ou um objeto JavaScript descrito pela string. Uma função reviver opcional pode ser fornecida para executar uma transformação no objeto que será retornado.
const json = '{"result":true, "count":42}';
const obj = JSON.parse(json);
console.log(obj.count);
// Expected output: 42
console.log(obj.result);
// Expected output: true
Sintaxe
JSON.parse(text[, reviver])Parâmetros
text
A string para analisar como JSON. Veja o objeto JSON
para uma descrição da sintaxe JSON.
reviver
Optional
Se for uma função, prescreve como o valor originalmente produzido pela análise será transformado antes de ser retornado.
O Object
correspondente ao text
JSON fornecido.
Lança uma exceção SyntaxError
se a string a ser analisada não for um JSON válido.
JSON.parse()
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
Usando o parâmetro reviver
Se um reviver
for especificado, o valor calculado pela análise será transformado antes de ser retornado. Especificamente, o valor computado e todas as suas propriedades (começando com as propriedades mais aninhadas e prosseguindo para o próprio valor original) são executadas individualmente através do reviver
. Em seguida, ele é chamado, com o objeto contendo a propriedade sendo processada como this
, e com o nome da propriedade como uma string, e o valor da propriedade como argumentos. Se a função reviver
retornar undefined
(ou não retornar nenhum valor, por exemplo, se a execução cair no final da função), a propriedade será excluÃda do objeto. Caso contrário, a propriedade é redefinida para ser o valor de retorno.
Se o reviver
apenas transformar alguns valores e não outros, certifique-se de retornar todos os valores não transformados como estão, caso contrário, eles serão excluÃdos do objeto resultante.
JSON.parse(
'{"p": 5}',
(key, value) =>
typeof value === "number"
? value * 2 // retorna o valor * 2 para números
: value, // retorna tudo sem alteração
);
// { p: 10 }
JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
console.log(key); // mostra o nome da propriedade atual, o último é "".
return value; // retorna o valor da propriedade inalterada.
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
JSON.parse()
não permite vÃrgulas à direta
// ambos retornarão um SyntaxError
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');
Especificações Compatibilidade com navegadores Veja Também
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4