Formateur JSON

Formater et embellir les données JSON

1
Comprendre Le format JSON
TL;DR

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

TypeDescriptionExemple
StringTexte Unicode entre guillemets doubles"hello world"
NumberEntier ou virgule flottante (pas de hex, pas de NaN, pas d’Infinity)42, 3.14, -7
BooleanVrai ou faux (en minuscules uniquement)true, false
NullAbsence explicite de valeur (en minuscules uniquement)null

Types structurels

TypeDescriptionExemple
ObjectCollection non ordonnee de paires cle-valeur{"key": "value"}
ArrayListe 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 :

ErreurIncorrectCorrect
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

CaracteristiqueJSONXMLYAML
LisibiliteBonneVerbeuseExcellente
Types de donnees6 integresTexte uniquement (attributs + elements)Riches (dates, binaire, etc.)
CommentairesNon supportesSupportes (<!-- -->)Supportes (#)
Validation de schemaJSON SchemaXSD, DTD, RelaxNGJSON Schema (reutilise)
Taille du fichierCompactGrande (balises repetees)La plus compacte
Vitesse de parsingRapideModereePlus lente
Usage principalAPI, configsEntreprise, SOAP, documentsConfigs, 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.json et 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 localStorage et sessionStorage
  • 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

Objet JSON valide avec tableau imbrique Valide

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"}}
JSON invalide -- Virgule finale Invalide

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,}