JSON.stringify()

Transforme une valeur JavaScript, comme un objet ou un tableau, en chaîne de caractères au format JSON.

Renvoie
Une chaîne de caractères au format JSON (ou undefined, si vous passez par ex. seulement une fonction).
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const student = { name: 'Léa', level: 7, courses: ['HTML', 'CSS'], premium: false }

const json = JSON.stringify(student)
console.log(json)
console.log(typeof json)
Console
{"name":"Léa","level":7,"courses":["HTML","CSS"],"premium":false}
string

Définition et utilisation

#

La méthode JSON.stringify() transforme un objet ou un tableau en texte au format JSON. Sous cette forme, les données peuvent être envoyées à un serveur via fetch(), enregistrées dans localStorage ou dans un fichier. L’opération inverse est effectuée par JSON.parse().

Tout ne peut pas être écrit en JSON. Les propriétés dont la valeur est undefined, les fonctions et les symboles sont ignorés (et remplacés par null dans les tableaux), NaN et Infinity deviennent null, et les dates se transforment en chaînes au format ISO. Map et Set donnent un objet vide {}, et un objet qui se référence lui-même provoque une TypeError.

Le deuxième argument (replacer) permet de choisir ou de transformer les champs enregistrés : un tableau de noms ne garde que ces clés, et une fonction peut changer ou ignorer chaque valeur. Le troisième argument (space) ajoute des indentations, ce qui rend le résultat lisible pour un humain.

Syntaxe

#
Syntaxe
JSON.stringify(value)
JSON.stringify(value, replacer)
JSON.stringify(value, replacer, space)

Paramètres

#
  • value

    n’importe quelle valeur

    Les données à transformer en JSON, le plus souvent un objet ou un tableau.
  • replacer

    optionnel, fonction ou tableau

    Une fonction (key, value) qui transforme les valeurs, ou un tableau de noms de clés à garder. Indiquez null pour l’ignorer.
  • space

    optionnel, nombre ou chaîne

    L’indentation pour un formatage lisible, par ex. 2 représente deux espaces.

Plus d’exemples

#
Un formatage lisible
JavaScript
const settings = { theme: 'dark', sound: true }
console.log(JSON.stringify(settings, null, 2))
Console
{
"theme": "dark",
"sound": true
}
Ce qui disparaît en passant en JSON
JavaScript
const quiz = {
  title: 'Quiz sur les boucles',
  deadline: new Date(Date.UTC(2026, 8, 28)),
  onFinish() {},
  bonus: undefined,
  score: NaN,
  tags: new Set(['js'])
}

console.log(JSON.stringify(quiz))
Console
{"title":"Quiz sur les boucles","deadline":"2026-09-28T00:00:00.000Z","score":null,"tags":{}}
Choisir des champs avec replacer
JavaScript
const user = { id: 7, name: 'Emma', password: 'secret123', email: 'emma@example.com' }

console.log(JSON.stringify(user, ['id', 'name']))
console.log(JSON.stringify(user, (key, value) => (key === 'password' ? undefined : value)))
Console
{"id":7,"name":"Emma"}
{"id":7,"name":"Emma","email":"emma@example.com"}

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Avant d’enregistrer une Map ou un Set, convertissez-les en structure ordinaire : Object.fromEntries(map) ou [...set].
  • Pour visualiser de grands objets, utilisez JSON.stringify(obj, null, 2). Vous verrez toute la structure avec des indentations.
  • JSON.parse(JSON.stringify(obj)) est une vieille astuce pour une copie profonde, mais elle perd les dates, undefined et les fonctions. Utilisez plutôt structuredClone().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.