Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Objetos Globais
  5. JSON
  6. JSON.stringify()

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

JSON.stringify()

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

Resumo

O métodoJSON.stringify() converte valores em javascript para uma String JSON. Esses valores podem ser substituidos especificando a funçãoreplacer, ou incluindo somente as propriedades específicas, quando o array do replacer for especificado.

Sintaxe

JSON.stringify(valor[, replacer[, espaço]])

Parâmetros

valor

O valor a ser convertido para uma string JSON.

replacerOptional

Uma função que altera o comportamento do processo de transformação em string, ou um array de objetosString eNumber que servem como uma lista branca para selecionar as propriedades do objeto valor a ser incluído na string JSON. Se este valor for nulo ou não fornecido, todas as propriedades do objeto são incluídas na string JSON resultante.

espaçoOptional

Um objetoString ouNumber que é usado para inserir espaço em branco na saída da string JSON para propósito de legibilidade. Se isto for umNumber, indica o número de caracteres espaço para usar como espaço em branco; este número é limitado em 10 se for maior que isso. Valores menores que 1 indicam que nenhum espaço deve ser usado. Se isto for umaString, a string (ou os primeiros 10 caracteres da string, se for maior que isso) é usado como espaço em branco. Se esse parâmetro não for fornecido (ou for null), nenhum espaço em branco é usado.

Descrição

JSON.stringify() converte um valor para uma notação JSON que o representa:

  • Se o valor tiver um métodotoJSON(), é responsável por definir quais dados serão serializados.
  • Boolean,Number, andString os objetos são convertidos para os valores primitivos correspondentes durante a stringificação, de acordo com a semântica de conversão.
  • Seundefined, uma função, ou um symbol é encontrado durante a conversão é omitido (quando é encontrado em um objeto) ou censurado paranull (quando é encontrado em um Array).JSON.stringify pode também somente retornarundefined ao passar valores puros comoJSON.stringify(function(){}) ouJSON.stringify(undefined).
  • Todas as propriedades com chave de símbolo serão completamente ignoradas, mesmo quando usar a funçãoreplacer.
  • Propriedades não enumeráveis serão ignoradas.
js
JSON.stringify({}); // '{}'JSON.stringify(true); // 'true'JSON.stringify("foo"); // '"foo"'JSON.stringify([1, "false", false]); // '[1,"false",false]'JSON.stringify({ x: 5 }); // '{"x":5}'JSON.stringify({ x: 5, y: 6 });// '{"x":5,"y":6}' or '{"y":6,"x":5}'JSON.stringify([new Number(1), new String("false"), new Boolean(false)]);// '[1,"false",false]'// Symbols:JSON.stringify({ x: undefined, y: Object, z: Symbol("") });// '{}'JSON.stringify({ [Symbol("foo")]: "foo" });// '{}'JSON.stringify({ [Symbol.for("foo")]: "foo" }, [Symbol.for("foo")]);// '{}'JSON.stringify({ [Symbol.for("foo")]: "foo" }, function (k, v) {  if (typeof k === "symbol") {    return "a symbol";  }});// '{}'

O parâmetroreplacer parameter

O parâmetroreplacer pode ser uma função ou uma matriz. Como função, são necessários dois parâmetros, achave e os valores que estão sendo especificados. O objeto no qual achave foi encontrada é fornecido como substituto desse parâmetro. Inicialmente, ele é chamado com uma chave vazia que representa o objeto que está sendo codificado e, em seguida, é chamado para cada propriedade noobjeto ou matriz que está sendo codificada. Ele deve retornar o valor que deve ser adicionado à cadeia JSON, da seguinte maneira:

  • Se você retornar umNumber, a string correspondente a esse número é usada como o valor da propriedade quando adicionada à sequência JSON.
  • If you return aString, that string is used as the property's value when adding it to the JSON string.
  • If you return aBoolean, "true" or "false" is used as the property's value, as appropriate, when adding it to the JSON string.
  • If you return any other object, the object is recursively stringified into the JSON string, calling thereplacer function on each property, unless the object is a function, in which case nothing is added to the JSON string.
  • If you returnundefined, the property is not included in the output JSON string.

Nota:Você não pode usar a funçãoreplacer para remover valoeres em umaarray. Se você retornarundefined,null será usado no lugar.

Exemplo de uma função

js
function replacer(key, value) {  if (typeof value === "string") {    return undefined;  }  return value;}var foo = {  fundação: "Mozilla",  modelo: "caixa",  semana: 45,  transporte: "carro",  mês: 7,};var jsonString = JSON.stringify(foo, replacer);

O resultado do JSON é:{"semana":45,"mês":7}.

Exemplo em uma array

Sereplacer é usado em uma array, os valores da array indicam os nomes das propriedades no objeto, que devem ser incluídas na sequência JSON resultante.

js
JSON.stringify(foo, ["semana", "mês"]);// '{"semana":45,"mês":7}', apenas mantém as propriedades "semana" e "mês"

O argumentospace

O argumentospace O argumento pode ser usado para controlar o espaçamento na sequência final. Se for um número, os níveis sucessivos na stringficação serão recuados por esse número de caracteres de espaço (até 10). Se for uma sequência, os níveis sucessivos serão recuados por essa sequência (ou pelos dez primeiros caracteres).

js
JSON.stringify({ a: 2 }, null, " ");// '{//  "a": 2// }'

O uso de um caractere de tabulação imita a aparência padrão de impressão pretty-print.

js
JSON.stringify({ um: 1, dois: 2 }, null, "\t");// r:// '{//     "um": 1,//     "dois": 2// }'

Comportamento detoJSON()

Se um objeto sendo stringificado tiver uma propriedade denominada toJSON() cujo valor é uma função, o métodotoJSON() personaliza o comportamento da stringificação JSON, em vez de o objeto ser serializado, o valor retornado pelo métodotoJSON() quando chamado será serializado. Por exemplo:

js
var obj = {  foo: "foo",  toJSON: function () {    return "bar";  },};JSON.stringify(obj); // '"bar"'JSON.stringify({ x: obj }); // '{"x":"bar"}'

Exemplo de uso deJSON.stringify() comlocalStorage

No caso em que você deseja armazenar um objeto criado por seu usuário e permitir que ele seja restaurado mesmo após o fechamento do navegador, o exemplo a seguir é um modelo para a aplicabilidade deJSON.stringify():

Aviso:As funções não são um tipo de dados JSON válido, portanto, elas não funcionarão. Também alguns objetos comoDate será uma string depoisJSON.parse().

js
// Criando um exemplo em JSONvar seção = {  telas: [],  estado: true,};session.screens.push({ nome: "telaA", largura: 450, altura: 250 });session.screens.push({ nome: "telaB", largura: 650, altura: 350 });session.screens.push({ nome: "telaC", largura: 750, altura: 120 });session.screens.push({ nome: "telaD", largura: 250, altura: 60 });session.screens.push({ nome: "telaE", largura: 390, altura: 120 });session.screens.push({ nome: "telaF", largura: 1240, altura: 650 });// Convertendo a string JSON em JSON.stringify()// Salvando com localStorage no nome da sessãolocalStorage.setItem("seção", JSON.stringify(seção));// Exemplo de como transformar a String gerada por meio de:// JSON.stringify() e salva em localStorage no objeto JSON novamentevar seçãoRestaurada = JSON.parse(localStorage.getItem("seção"));// Agora, a variável seçãoRestaurada contém o objeto que foi salvo// no localStorageconsole.log(seçãoRestaurada);

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-json.stringify

Compatibilidade em navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp