Qu'est-ce que JSON ? Guide complet pour les débutants
Qu'est-ce que JSON ?
JSON (JavaScript Object Notation) est un format d'échange de données léger et basé sur le texte, conçu pour être facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. Il a été initialement dérivé de la syntaxe des littéraux d'objets JavaScript, mais est depuis devenu un standard indépendant du langage, pris en charge par pratiquement tous les langages de programmation.
Aujourd'hui, JSON est le format dominant pour l'échange de données sur le web. Il alimente les API REST, les fichiers de configuration, les bases de données NoSQL, la communication des applications mobiles et d'innombrables autres systèmes pilotés par les données. Sa simplicité et son omniprésence en ont fait le choix par défaut des développeurs du monde entier.
Règles de syntaxe JSON
JSON suit un ensemble strict et minimal de règles de syntaxe :
- Les données sont structurées en paires clé/valeur
- Toutes les clés doivent être des chaînes entre guillemets doubles (les guillemets simples ne sont pas autorisés)
- Les paires clé/valeur sont séparées par deux-points (
:) - Les paires sont séparées par des virgules (
,) - Les accolades
{}délimitent les objets - Les crochets
[]délimitent les tableaux - Aucune virgule de fin n'est autorisée
- Aucun commentaire n'est autorisé en JSON strict
Exemple de JSON valide
{
"name": "Jane Smith",
"age": 28,
"isEmployed": true,
"skills": ["JavaScript", "Python", "SQL"],
"address": {
"street": "123 Main Street",
"city": "San Francisco",
"zipCode": "94102"
},
"phoneNumbers": null
}
Exemples de JSON invalide
Virgule de fin (invalide) :
{
"name": "Jane",
"age": 28,
}
Clé entre guillemets simples (invalide) :
{ 'name': 'Jane' }
Clé sans guillemets (invalide) :
{ name: "Jane" }
Types de données JSON
JSON prend en charge exactement six types de données :
| Type | Description | Exemple |
|------|-------------|---------|
| Chaîne | Texte Unicode entre guillemets doubles | "Hello, world!" |
| Nombre | Entier ou nombre à virgule flottante | 42, 3.14, -7, 1.5e10 |
| Booléen | Vrai ou faux logique | true, false |
| Null | Valeur vide intentionnelle | null |
| Objet | Collection non ordonnée de paires clé/valeur | {"key": "value"} |
| Tableau | Liste ordonnée de valeurs | [1, 2, 3] |
Absents de manière notable : les dates, les horodatages, les données binaires, undefined et les fonctions n'ont pas de représentation JSON native. Les dates sont généralement stockées sous forme de chaînes ISO 8601 par convention.
JSON contre d'autres formats de données
JSON côtoie plusieurs autres formats d'échange de données, chacun avec des compromis :
- JSON contre XML : JSON est plus concis et plus rapide à analyser. XML prend en charge les attributs, les espaces de noms et les schémas (XSD), mais est nettement plus verbeux.
- JSON contre YAML : YAML est plus lisible pour les humains dans le cas des fichiers de configuration et prend en charge les commentaires, mais sa syntaxe sensible à l'indentation peut être sujette aux erreurs. JSON est plus portable et dispose d'une validation plus stricte.
- JSON contre CSV : CSV est plat et uniquement tabulaire. JSON prend en charge les hiérarchies imbriquées et les types de données mixtes.
- JSON contre Protocol Buffers : Protobuf est plus petit et plus rapide pour la communication machine à machine, mais nécessite une définition de schéma et n'est pas lisible par les humains.
Pourquoi JSON domine les API web
Plusieurs facteurs expliquent la domination de JSON dans la conception des API web :
- Omniprésence dans les langages -- Chaque langage majeur dispose d'un analyseur JSON natif ou bien maintenu, éliminant les frictions d'intégration.
- Prise en charge native des navigateurs --
JSON.parse()etJSON.stringify()de JavaScript font de JSON le choix naturel pour les applications web. - Bande passante minimale -- La syntaxe légère de JSON produit des charges utiles plus petites que XML, réduisant la latence et les coûts de bande passante.
- Lisibilité humaine -- Les développeurs peuvent inspecter, déboguer et écrire manuellement des données JSON sans outils spéciaux.
- Schéma flexible -- Contrairement aux formats rigides comme XML Schema ou Protocol Buffers, JSON s'adapte aux structures de données en évolution sans recompilation.
Cas d'utilisation courants de JSON
- API REST et GraphQL -- Le format standard pour les charges utiles de requêtes et de réponses.
- Fichiers de configuration -- Utilisé par des outils comme ESLint, Prettier, webpack et VS Code.
- Bases de données NoSQL -- MongoDB et CouchDB stockent les données sous forme de documents de type JSON.
- Sérialisation des données -- Structurer les données pour le stockage, le transfert ou la mise en cache.
- Communication en temps réel -- Messages JSON dans les flux WebSocket et les Webhooks.
- Agrégation de journaux -- Les outils de journalisation structurée comme Winston, Logstash et Datadog utilisent JSON pour des entrées de journal consultables et filtrables.
Validation et formatage JSON
Lorsqu'on travaille avec JSON, la validation est essentielle. Une seule erreur de syntaxe -- une virgule de fin, un guillemet manquant ou un caractère non échappé -- peut casser une intégration API entière ou un fichier de configuration. L'inspection manuelle n'est pas fiable, en particulier pour les grands documents JSON.
Comment valider JSON
La validation suit généralement ces étapes :
- Analysez la chaîne JSON à l'aide d'un analyseur standard comme
JSON.parse()en JavaScript ou son équivalent dans le langage de votre choix. - Vérifiez les erreurs de syntaxe -- l'analyseur lèvera une erreur à la première violation avec un message indiquant l'emplacement du problème.
- Corrigez les erreurs de manière itérative -- comme les analyseurs s'arrêtent à la première erreur, corrigez-la et revalidez jusqu'à ce que le document passe.
La plupart des outils JSON en ligne combinent la validation et le formatage. Collez votre JSON, et l'outil vérifie instantanément la syntaxe, met en évidence les erreurs avec les numéros de ligne et de colonne, et produit une sortie propre et indentée. C'est nettement plus rapide que de déboguer avec des exceptions d'analyseur dans votre code.
Conseils pour travailler avec JSON
- Validez toujours avant d'utiliser -- Ne supposez jamais qu'un JSON écrit à la main est valide.
- Utilisez un linter -- Des outils comme ESLint avec des plugins JSON détectent les erreurs avant qu'elles n'atteignent la production.
- Privilégiez les bibliothèques JSON -- Générez du JSON avec des bibliothèques de sérialisation plutôt qu'avec la concaténation de chaînes pour éviter des erreurs de syntaxe subtiles.
- Définissez des en-têtes Content-Type stricts -- Pour les API, imposez
Content-Type: application/jsonpour rejeter les requêtes malformées dès le départ.
Utilisez un validateur et formateur JSON en ligne gratuit pour vérifier instantanément la syntaxe de votre JSON, localiser les erreurs et formater vos données pour une meilleure lisibilité. Que vous soyez un débutant apprenant les bases ou un développeur expérimenté déboguant une API de production, notre outil Formateur et validateur JSON vous aide à travailler efficacement avec les données JSON.