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.
Guides de réparation JSON
Pôles thématiques
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: 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