Comment formater et valider du JSON en ligne

· 7 min de lecture

Si vous travaillez avec des API, des fichiers de configuration ou tout type de donnees structurees, vous traitez du JSON regulierement. Et si vous avez deja fixe un mur de JSON minifie en essayant de trouver un crochet manquant, vous savez pourquoi le formatage est important. Un formateur base sur navigateur gere tout le travail localement sans televerser vos donnees sur un serveur.

Ce que fait le formatage JSON

Le JSON brut d'une reponse API ou d'un fichier minifie ressemble a ceci :

{"users":[{"name":"Alice","age":30,"roles":["admin","editor"]},{"name":"Bob","age":25,"roles":["viewer"]}]}

Un formateur le transforme en quelque chose de lisible :

{
  "users": [
    {
      "name": "Alice",
      "age": 30,
      "roles": ["admin", "editor"]
    },
    {
      "name": "Bob",
      "age": 25,
      "roles": ["viewer"]
    }
  ]
}

Les memes donnees, mais maintenant vous pouvez vraiment les lire, reperer les erreurs et comprendre la structure.

Comment formater du JSON en ligne

  1. Collez votre JSON dans le champ de saisie. Le formateur detectera immediatement les erreurs de syntaxe et validera la structure.
  2. Choisissez votre indentation : selectionnez 2 ou 4 espaces, ou cliquez sur Minifier pour compresser le JSON en une seule ligne.
  3. Copiez le resultat : la sortie formatee inclut une coloration syntaxique. Copiez-la pour l'utiliser dans votre code, fichier de configuration ou documentation.

Une breve histoire du JSON

JSON (JavaScript Object Notation) a ete specifie par Douglas Crockford en 2001, formellement documente dans le RFC 4627 (2006), et standardise comme ECMA-404 en 2013 et ISO/IEC 21778 en 2017. Crockford n'a pas invente JSON : il l'a extrait d'un sous-ensemble de la syntaxe litterale d'objet JavaScript deja utilisee, et lui a donne un nom plus une specification d'une page sur json.org.

JSON a rapidement supplante XML pour les API web parce qu'il est radicalement plus simple. Une reponse XML est verbeuse avec des balises d'ouverture/fermeture ; le JSON equivalent fait la moitie de la taille. Les navigateurs peuvent analyser JSON nativement (JSON.parse, JSON.stringify depuis ECMAScript 5 en 2009) sans analyseur XML requis.

En 2015, chaque API majeure dans le monde parlait JSON : API REST, requetes GraphQL, messages WebSocket, fichiers de configuration (package.json, tsconfig.json, .vscode/settings.json), et meme bases de donnees (PostgreSQL JSONB, MongoDB BSON qui est de type JSON). C'est devenu la lingua franca des donnees structurees sur le web.

La simplicite de JSON est aussi sa limitation : pas de commentaires, pas de virgules finales, pas de type date, pas de support binaire. Plusieurs variantes JSON ont emerge pour combler ces lacunes (voir «Formats alternatifs de type JSON» ci-dessous).

Erreurs JSON courantes et comment les reperer

La plupart des erreurs JSON se reduisent a quelques erreurs courantes :

Un bon formateur souligne exactement ou se trouve l'erreur, afin que vous puissiez la corriger immediatement au lieu de deviner.

Types de donnees JSON

JSON a exactement 6 types de donnees :

TypeExempleNotes
Chaine"hello"Toujours guillemets doubles, supporte \n, \t, \\, \", \uXXXX
Nombre42, 3.14, -1e10Pas de NaN ou Infinity, pas de zeros initiaux
Booleentrue, falseMinuscules uniquement
nullnullMinuscules uniquement
Tableau[1, 2, 3]Ordonne, n'importe quels types, separe par des virgules
Objet{"key": "value"}Les cles doivent etre des chaines guillemetees, separees par des virgules

Notablement absent : dates (utilisez des chaines ISO 8601), donnees binaires (utilisez des chaines Base64), commentaires (utilisez un champ de documentation separe), et bigint (les nombres JSON sont en double precision ; les valeurs >= 2^53 perdent en precision).

Quand formater vs minifier

Formater (pretty-print) lorsque vous devez :

Minifier lorsque vous devez :

La difference de taille est significative : un JSON typique de 50 Ko pretty-printed se minifie a environ 30 Ko. Pour les API a fort trafic, les reponses minifiees economisent de la bande passante. Pour les fichiers edites par l'humain, le formate est essentiel.

Formats alternatifs de type JSON

Lorsque la strictesse de JSON est un probleme, plusieurs variantes assouplissent les regles :

FormatAjoute par rapport au JSONMeilleure utilisation
JSON5Commentaires, virgules finales, guillemets simples, cles non guillemeteesFichiers de configuration ou les humains editent
JSONCCommentaires uniquement (// et /* */)Parametres VS Code, tsconfig.json
HJSONCommentaires, chaines non guillemetees, chaines multi-lignesConfigs conviviales pour l'humain
JSON Lines (NDJSON)Un objet JSON par ligne, pas de tableau englobantFichiers journaux, streaming
YAMLBase sur l'indentation, commentaires, ancres, referencesKubernetes, GitHub Actions
TOMLSyntaxe de type INI, dates, commentairesCargo.toml, pyproject.toml
BSONJSON binaire avec des types supplementaires (Date, ObjectId, Binary)Stockage interne de MongoDB
CBOR (RFC 8949)Format binaire optimise pour la tailleAPI de dispositifs contraints
MessagePackType JSON binaire, compactSerialisation API interne

Pour l'echange de donnees (reponses API, configuration), respectez le JSON strict. Pour les configs editees par l'humain, JSON5 ou JSONC sont plus conviviales. Pour le streaming de donnees, NDJSON est la norme de facto.

Pieges courants

Conseils pour travailler avec JSON

Confidentialite et JSON sensible

Le formateur JSON s'execute entierement dans votre navigateur. Le JSON que vous collez, le traitement intermediaire et la sortie formatee restent tous sur votre appareil. Rien n'est televerse sur un serveur, enregistre ou partage avec qui que ce soit.

Cela importe car le JSON contient souvent des donnees extremement sensibles : reponses API avec dossiers clients et adresses e-mail, tokens d'authentification et donnees de session, schemas API internes qui revelent l'architecture du produit, fichiers de configuration avec mots de passe de base de donnees, donnees financieres d'API comptables, dossiers medicaux d'API FHIR, structure interne de l'entreprise d'API RH, charges utiles de debogage avec des traces de pile revelant l'infrastructure. Les formateurs JSON en nuage enregistrent chaque collage dans leurs journaux de requetes, les conservent parfois pour «amelioration du service», et ont ete impliques dans de vrais incidents ou des reponses API collees ont fui des donnees clients et des cles API. Un formateur base sur navigateur a une exposition nulle : le JSON ne quitte jamais votre machine.

Le formatage base sur navigateur fonctionne aussi hors ligne une fois la page chargee, utile pour formater du JSON dans les avions, dans des environnements securises sans acces internet, ou partout ou vous ne pouvez pas ou ne devriez pas coller des donnees API (en particulier avec des identifiants integres) dans un service tiers.

Questions fréquentes

Le formateur peut-il gérer de gros fichiers JSON ?

Oui. Puisque l'outil tourne dans votre navigateur, il peut traiter des fichiers de dizaines de milliers de lignes. Les performances dépendent de votre appareil, mais la plupart des navigateurs modernes gèrent du gros JSON sans problème.

Cela fonctionne-t-il hors ligne ?

Oui. Une fois la page chargée, l'outil fonctionne entièrement dans votre navigateur sans connexion Internet. Tout le traitement se fait en local en JavaScript.

Quelle est la différence entre formater et valider ?

Formater ajoute indentation et sauts de ligne pour rendre le JSON lisible. Valider vérifie que la structure JSON est correcte, accolades équilibrées, guillemets corrects, types valides. La plupart des formateurs font les deux en même temps.

Puis-je utiliser ceci sur mon téléphone ?

Oui. L'outil fonctionne sur tout appareil avec un navigateur moderne, y compris téléphones et tablettes.