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.
Sur cette page

Exemple

#
JavaScript
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)
Console
Lucas
CSS
{ name: 'Lucas', level: 3, skills: ['HTML', 'CSS'], premium: true }

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

#
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

#
Analyser en sécurité des données incertaines
JavaScript
function safeParse(text, fallback) {
  try {
    return JSON.parse(text)
  } catch {
    return fallback
  }
}

console.log(safeParse('{"theme":"dark"}', {}))
console.log(safeParse("{theme: 'dark'}", {}))
Console
{ theme: 'dark' }
{}
Restaurer des dates avec reviver
JavaScript
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())
Console
true
10
Les erreurs de syntaxe les plus courantes
JavaScript
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)
  }
}
Console
SyntaxError
SyntaxError
{ level: 1 }

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...catch les données venant du réseau, de l’utilisateur ou de localStorage. Un seul caractère incorrect déclenche une SyntaxError.
  • JSON.parse() ne restaure ni les dates, ni les Map, ni les instances de classes. Vous pouvez restaurer les dates avec une fonction reviver.
  • Avec fetch(), au lieu de JSON.parse(await response.text()), utilisez simplement await response.json().

Entrées associées

#

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