Convertisseur JSON vers objet JavaScript

Du JSON strict peut être converti en objet JavaScript avec JSON.parse. Les littéraux d’objet JavaScript nécessitent un nettoyage avant d’être du JSON valide.

Convertir du JSON en JavaScript

Si l’entrée est déjà du JSON valide, le convertisseur le plus sûr est JSON.parse(jsonText). Il renvoie un objet, tableau, chaîne, nombre, booléen ou null JavaScript, sans exécuter de code.

Entrée JSON

{ "name": "Ada", "active": true, "skills": ["math", "notes"] }

Utilisation en JavaScript

const user = JSON.parse(jsonText); console.log(user.name);

L’entrée littéral d’objet n’est pas du JSON

Un littéral d’objet JavaScript comme { name: 'Ada', active: true } n’est pas du JSON. Avant de le passer à JSON.parse, réparez les clés sans guillemets, convertissez les guillemets simples en doubles, supprimez les commentaires et retirez les virgules finales.

Quand éviter eval

N’utilisez pas eval pour transformer du texte inconnu en objet. eval exécute du code. JSON.parse, lui, ne fait que parser des données — c’est pourquoi le JSON strict est plus sûr pour les payloads d’API, la configuration, les logs et les exemples collés.

Cas limites : dates, undefined et fonctions

JSON n’a pas de type Date, undefined ou fonction. Les dates voyagent comme des chaînes ISO, les undefined disparaissent au stringify, et les fonctions ne peuvent pas être représentées du tout. Si un objet JavaScript en contient, le JSON résultant sera une capture avec perte — restaurez les types explicitement avec une fonction reviver dans JSON.parse.

TypeScript et types inférés

JSON.parse renvoie 'any' parce que le parser ne peut pas connaître la forme à l’avance. Pour un accès typé, soit déclarez un type de retour (JSON.parse(text) as User) après validation avec une bibliothèque de schémas comme zod ou io-ts, soit générez une interface depuis un exemple via l’outil JSON to TypeScript.

Sens inverse : objet vers JSON

JSON.stringify(value, null, 2) produit du JSON formaté à partir d’une valeur JavaScript. Il jette en silence undefined, les fonctions et les clés Symbol ; les références circulaires lèvent une erreur. Passez une fonction replacer en deuxième argument pour contrôler les champs qui survivent — utile pour retirer les internes avant d’envoyer un objet sur le réseau.