JSON vs littéral d’objet JavaScript
Le JSON ressemble à un littéral d’objet JavaScript, mais c’est un format de données plus petit, à la syntaxe plus stricte et sans valeurs exécutables.
Version courte
Un littéral d’objet JavaScript est du code source. JSON est un format d’échange de données. Le recouvrement est suffisamment large pour induire en erreur, mais les règles diffèrent : les clés et chaînes JSON exigent des guillemets doubles, JSON n’a pas de commentaires, et JSON ne peut représenter ni fonctions, ni undefined, ni NaN, ni Infinity, ni objets Date, ni expressions régulières.
Valeurs JSON valides
Un document JSON peut contenir un objet, un tableau, une chaîne, un nombre, un booléen ou null. Les chaînes doivent utiliser des guillemets doubles. Les clés d’objet doivent aussi être des chaînes entre guillemets doubles. Les nombres ne peuvent pas utiliser de formes spécifiques à JavaScript comme la notation hexadécimale, NaN, Infinity ou les séparateurs numériques.
- Chaîne JSON valide : "hello"
- Booléen JSON valide : true
- Null JSON valide : null
- Clé d’objet JSON valide : "name"
JavaScript valide mais JSON invalide
{ name: 'Ada', active: true, createdAt: new Date(), onSave() { return true }, tags: ['dev',], }
Version JSON valide
{ "name": "Ada", "active": true, "createdAt": "2026-05-13T00:00:00.000Z", "tags": ["dev"] }
Pourquoi les APIs rejettent les données qui ressemblent à du JavaScript
Les serveurs d’API parsent généralement les corps de requête avec un parser JSON, pas avec un moteur JavaScript. C’est une garantie de sécurité et d’interopérabilité : tout langage peut parser les mêmes données sans exécuter de code. Si un corps inclut des commentaires, des méthodes, undefined ou new Date(), le serveur ne peut pas le traiter comme de la donnée pure en toute sécurité.
Comment convertir en sécurité
Remplacez les valeurs exécutables ou spécifiques à un langage par des données simples. Les dates deviennent des chaînes, les valeurs manquantes deviennent null ou des clés omises, les commentaires partent dans la documentation, et les fonctions sont représentées par des champs de données explicites comme un nom de stratégie ou un type.
Voir aussi
Ce guide est une étape d'un workflow de réparation plus large qui couvre les virgules finales, les clés sans guillemets, les guillemets simples et les objets sérialisés. Ouvrez le hub pour la séquence complète.
Guides de réparation JSON
Pôles thématiques
- Erreurs d'analyse JSON : lisez le message, allez droit à la solution
- Réparer du JSON non valide : de « qu'est-ce qui cloche » à un fichier propre
- Formateur, validateur, visualiseur JSON : choisir le bon outil
- Réparer la sortie JSON d'un LLM : gérer le presque-JSON de l'IA
- Confidentialité : des outils JSON qui ne quittent pas votre navigateur
- Interopérabilité JSON : YAML, CSV, XML, JWT, Schema
Guides spécifiques
- Comment décoder des chaînes Base64 (et des payloads JWT)
- Encodage URL : encodez les paramètres de requête et les chemins
- Convertir YAML en JSON (et éviter les erreurs d’indentation)
- Convertir JSON en CSV : aplatir un tableau d’objets
- Convertir JSON en XML : racine, attributs et tableaux
- Échapper du JSON comme littéral de chaîne (et décoder du JSON doublement encodé)
- Corriger les virgules finales en JSON
- Corriger les guillemets simples en JSON
- Corriger les clés sans guillemets en JSON
- Réparer le JSON produit par un LLM
- Corriger l’erreur de parse JSON : Expected Property Name
- Validez le JSON avant les requêtes API
- Formateur JSON vs JSON Repair
- Corriger les erreurs JSON Unexpected Token
- Convertisseur JSON vers objet JavaScript