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
Exemple
#const student = { name: 'Léa', level: 7, courses: ['HTML', 'CSS'], premium: false }
const json = JSON.stringify(student)
console.log(json)
console.log(typeof json)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
#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. Indiqueznullpour l’ignorer.space
optionnel, nombre ou chaîne
L’indentation pour un formatage lisible, par ex.2représente deux espaces.
Plus d’exemples
#const settings = { theme: 'dark', sound: true }
console.log(JSON.stringify(settings, null, 2))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))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)))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
Mapou unSet, 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,undefinedet les fonctions. Utilisez plutôtstructuredClone().
Entrées associées
#- JSON.parse()Transforme une chaîne de caractères au format JSON en valeur JavaScript, comme un objet ou un tableau.
- structuredClone()Crée une copie profonde d’une valeur, y compris les objets imbriqués, les dates, les Map et les Set.
- fetch()Envoie une requête HTTP et renvoie une promesse avec la réponse du serveur (un objet Response).
- localStorageStockage du navigateur pour des paires clé-valeur qui survit à l’actualisation de la page et au redémarrage du navigateur.
- MapUne collection de paires clé-valeur dans laquelle la clé peut être n’importe quelle valeur, et où l’ordre d’ajout est conservé.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.