Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
JSON.parse()
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
* Some parts of this feature may have varying levels of support.
O métodoJSON.parse() analisa uma string JSON, construindo o valor ou um objeto JavaScript descrito pela string. Uma funçãoreviver opcional pode ser fornecida para executar uma transformação no objeto que será retornado.
In this article
Experimente
const json = '{"result":true, "count":42}';const obj = JSON.parse(json);console.log(obj.count);// Expected output: 42console.log(obj.result);// Expected output: trueSintaxe
JSON.parse(text[, reviver])
Parâmetros
textA string para analisar como JSON. Veja o objeto
JSONpara uma descrição da sintaxe JSON.reviverOptionalSe for uma função, prescreve como o valor originalmente produzido pela análise será transformado antes de ser retornado.
Valor retornado
OObject correspondente aotext JSON fornecido.
Exceções
Lança uma exceçãoSyntaxError se a string a ser analisada não for um JSON válido.
Exemplos
>UsandoJSON.parse()
JSON.parse("{}"); // {}JSON.parse("true"); // trueJSON.parse('"foo"'); // "foo"JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]JSON.parse("null"); // nullUsando o parâmetroreviver
Se umreviver 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 doreviver. Em seguida, ele é chamado, com o objeto contendo a propriedade sendo processada comothis, e com o nome da propriedade como uma string, e o valor da propriedade como argumentos. Se a funçãoreviver retornarundefined (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 oreviver 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 SyntaxErrorJSON.parse("[1, 2, 3, 4, ]");JSON.parse('{"foo" : 1, }');Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-json.parse> |