JSON.stringify în JavaScript

JSON ES5 (toate browserele moderne)

Transformă un obiect sau tablou JavaScript în text JSON.

Sintaxă
JSON.stringify(valoare, inlocuitor, spatii)

Ce face JSON.stringify

JSON.stringify face operația inversă lui JSON.parse: transformă datele în text, ca să le trimiți la un server sau să le salvezi în localStorage.

Funcțiile și valorile undefined din obiecte sunt omise. Al treilea parametru adaugă indentare și face rezultatul ușor de citit.

Parametri

Parametru Descriere
valoare Datele de transformat.
inlocuitor Opțional. Un tablou cu cheile păstrate sau o funcție. Folosește null dacă nu ai nevoie.
spatii Opțional. Numărul de spații pentru indentare.

Ce returnează

Un șir de caractere JSON.

Exemple

Exemplul 1: Pe un singur rând și indentat

const produs = { nume: "Laptop", pret: 3500, etichete: ["nou", "promo"] };

console.log(JSON.stringify(produs));
console.log(JSON.stringify(produs, null, 2));

Rezultat

{"nume":"Laptop","pret":3500,"etichete":["nou","promo"]}
{
  "nume": "Laptop",
  "pret": 3500,
  "etichete": [
    "nou",
    "promo"
  ]
}

Exemplul 2: Ce se pierde și cum alegi cheile

const utilizator = {
  nume: "Ana",
  parola: "secret",
  telefon: undefined,
  salut() { return "Salut"; },
};

console.log(JSON.stringify(utilizator));
console.log(JSON.stringify(utilizator, ["nume"]));

Rezultat

{"nume":"Ana","parola":"secret"}
{"nume":"Ana"}

Greșeli frecvente

  • Salvezi un obiect în localStorage fără JSON.stringify și ce se salvează este textul "[object Object]".
  • Te aștepți ca datele de tip Date să revină ca date după JSON.parse. Ele devin text și trebuie transformate înapoi cu new Date(text).

Comenzi înrudite

  • JSON.parse: Transformă un text JSON într-un obiect sau tablou JavaScript.
  • localStorage: Salvează date în browserul vizitatorului, care rămân și după închiderea paginii.
  • fetch: Trimite o cerere HTTP la un server și primește răspunsul, fără reîncărcarea paginii.