Formateur JSON
Formater et embellir les données JSON
JSON (JavaScript Object Notation) est le format d'echange de donnees le plus repandu sur le web. Il est lisible par l'humain, independant du langage et nativement supporte par tous les langages de programmation modernes.
Qu’est-ce que JSON ?
JSON (JavaScript Object Notation) est un format d’echange de donnees leger et base sur du texte. Malgre son nom, JSON est independant du langage — il est nativement supporte par JavaScript, Python, Java, Go, Rust, C#, Ruby, PHP et pratiquement tous les autres langages de programmation modernes.
JSON est derive de la syntaxe des litteraux d’objets JavaScript, mais c’est strictement un format de donnees — pas un langage de programmation. Il a ete formalise par Douglas Crockford au debut des annees 2000 comme alternative plus simple a XML pour transmettre des donnees structurees entre un serveur et une application web. Aujourd’hui, JSON est le format dominant pour les API REST, les fichiers de configuration et le stockage de donnees dans les bases de donnees documentaires comme MongoDB et CouchDB.
Types de donnees JSON
JSON prend en charge exactement six types de donnees organises en deux structures :
Types primitifs
| Type | Description | Exemple |
|---|---|---|
| String | Texte Unicode entre guillemets doubles | "hello world" |
| Number | Entier ou virgule flottante (pas de hex, pas de NaN, pas d’Infinity) | 42, 3.14, -7 |
| Boolean | Vrai ou faux (en minuscules uniquement) | true, false |
| Null | Absence explicite de valeur (en minuscules uniquement) | null |
Types structurels
| Type | Description | Exemple |
|---|---|---|
| Object | Collection non ordonnee de paires cle-valeur | {"key": "value"} |
| Array | Liste ordonnee de valeurs | [1, 2, 3] |
Les objets et tableaux peuvent etre imbriques a n’importe quelle profondeur, et les valeurs qu’ils contiennent peuvent etre n’importe lequel des six types JSON. Cette structure recursive simple est ce qui rend JSON si polyvalent.
Erreurs JSON courantes
La simplicite de JSON signifie aussi que son parseur est strict. Voici les erreurs les plus frequentes :
| Erreur | Incorrect | Correct |
|---|---|---|
| Cles entre guillemets simples | {'name': 'Alice'} | {"name": "Alice"} |
| Cles sans guillemets | {name: "Alice"} | {"name": "Alice"} |
| Virgule finale | {"a": 1, "b": 2,} | {"a": 1, "b": 2} |
| Chaines entre guillemets simples | {"name": 'Alice'} | {"name": "Alice"} |
| Commentaires | {"a": 1} // comment | {"a": 1} |
| Undefined | {"a": undefined} | {"a": null} |
JSON ne prend pas en charge les commentaires, les virgules finales, les guillemets simples ou undefined. Tous ces elements sont valides en JavaScript mais interdits en JSON. Si vous avez besoin de commentaires dans les fichiers de configuration, envisagez JSON5 ou JSONC (JSON with Comments), qui etendent le format avec ces commodites.
JSON vs XML vs YAML
| Caracteristique | JSON | XML | YAML |
|---|---|---|---|
| Lisibilite | Bonne | Verbeuse | Excellente |
| Types de donnees | 6 integres | Texte uniquement (attributs + elements) | Riches (dates, binaire, etc.) |
| Commentaires | Non supportes | Supportes (<!-- -->) | Supportes (#) |
| Validation de schema | JSON Schema | XSD, DTD, RelaxNG | JSON Schema (reutilise) |
| Taille du fichier | Compact | Grande (balises repetees) | La plus compacte |
| Vitesse de parsing | Rapide | Moderee | Plus lente |
| Usage principal | API, configs | Entreprise, SOAP, documents | Configs, DevOps |
JSON offre un equilibre entre lisibilite humaine et efficacite machine. XML est plus expressif (avec les attributs, espaces de noms et contenu mixte) mais nettement plus verbeux. YAML est le plus lisible pour l’humain mais sa syntaxe basee sur l’indentation peut etre source d’erreurs, et son parseur est plus complexe.
Pour les API web, JSON a nettement gagne. Pour les fichiers de configuration, YAML est populaire dans l’ecosysteme DevOps (Kubernetes, Docker Compose, GitHub Actions). XML reste dominant dans les systemes d’entreprise, les services SOAP et les formats de documents.
Cas d’utilisation courants
- API REST : JSON est le format de requete et de reponse par defaut pour pratiquement toutes les API REST modernes
- Fichiers de configuration :
package.json,tsconfig.json,.eslintrc.jsonet de nombreux autres outils utilisent JSON pour la configuration - Bases de donnees documentaires : MongoDB, CouchDB et DynamoDB stockent des documents au format JSON (ou BSON)
- Echange de donnees : Les microservices communiquent en JSON via HTTP, WebSocket ou des files de messages
- Stockage local : Les navigateurs serialisent les objets JavaScript en JSON pour
localStorageetsessionStorage - Journalisation : Les systemes de journalisation structuree (pile ELK, Datadog) consomment des entrees de log au format JSON pour le parsing et l’indexation
Essayez ces exemples
Un objet JSON valide contenant une chaine de caracteres, un nombre, un tableau de chaines et un objet imbrique. Toutes les cles sont entre guillemets doubles, et les valeurs utilisent les types de donnees JSON corrects.
{"name": "Alice", "age": 30, "roles": ["admin", "editor"], "address": {"city": "Paris", "zip": "75001"}} Invalide car JSON n'autorise pas les virgules finales apres la derniere propriete. C'est l'erreur de syntaxe JSON la plus courante -- JavaScript l'autorise, mais JSON non.
{"name": "Alice", "age": 30,}