JSON. parse()
Transforme une chaîne de caractères au format JSON en valeur JavaScript, comme un objet ou un tableau.
- Renvoie
- La valeur JavaScript correspondant au texte JSON.
Exemple
#const json = '{"name":"Lucas","level":3,"skills":["HTML","CSS"],"premium":true}'
const user = JSON.parse(json)
console.log(user.name)
console.log(user.skills[1])
console.log(user)Définition et utilisation
#La méthode JSON.parse() lit un texte au format JSON et crée la valeur correspondante : un objet, un tableau, une chaîne, un nombre, true, false ou null. Elle sert pour les données venant d’un serveur, de localStorage ou de fichiers de configuration.
Le format JSON est plus strict que l’écriture des objets en JavaScript. Les clés et les chaînes doivent être entre guillemets doubles, aucune virgule ne peut suivre le dernier élément, et les commentaires sont interdits. Un texte invalide provoque une SyntaxError, donc analysez les données venant d’une source incertaine dans un bloc try...catch.
Le deuxième argument optionnel (reviver) est une fonction appelée pour chaque paire clé-valeur. Il permet de transformer le résultat pendant la lecture, par exemple pour retransformer des chaînes de dates en objets Date.
Syntaxe
#JSON.parse(text)
JSON.parse(text, reviver)Paramètres
#text
chaîne de caractères
Le texte au format JSON.reviver
function (key, value) optionnelle
Une fonction qui transforme chaque valeur lue. Ce qu’elle renvoie se retrouve dans le résultat.
Plus d’exemples
#function safeParse(text, fallback) {
try {
return JSON.parse(text)
} catch {
return fallback
}
}
console.log(safeParse('{"theme":"dark"}', {}))
console.log(safeParse("{theme: 'dark'}", {}))const json = '{"title":"Examen","date":"2026-09-28T10:30:00.000Z"}'
const exam = JSON.parse(json, (key, value) => (key === 'date' ? new Date(value) : value))
console.log(exam.date instanceof Date)
console.log(exam.date.getUTCHours())const attempts = ["{'level': 1}", '{"level": 1,}', '{"level": 1}']
for (const text of attempts) {
try {
console.log(JSON.parse(text))
} catch (error) {
console.log(error.name)
}
}Le premier texte utilise des guillemets simples, et le second a une virgule après le dernier élément. Les deux sont valides en JavaScript, mais pas en JSON.
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
#- Analysez toujours dans un
try...catchles données venant du réseau, de l’utilisateur ou delocalStorage. Un seul caractère incorrect déclenche uneSyntaxError. JSON.parse()ne restaure ni les dates, ni lesMap, ni les instances de classes. Vous pouvez restaurer les dates avec une fonctionreviver.- Avec
fetch(), au lieu deJSON.parse(await response.text()), utilisez simplementawait response.json().
Entrées associées
#- JSON.stringify()Transforme une valeur JavaScript, comme un objet ou un tableau, en chaîne de caractères au format JSON.
- try...catchCapture les erreurs levées dans un bloc try et les traite dans catch. Un finally optionnel s’exécute toujours.
- 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.
- structuredClone()Crée une copie profonde d’une valeur, y compris les objets imbriqués, les dates, les Map et les Set.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.