slam:donneestructurees:le_format_json_1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
slam:donneestructurees:le_format_json_1 [2024/12/20 11:04] – créée dthevenotslam:donneestructurees:le_format_json_1 [2024/12/20 11:11] (Version actuelle) – [Chargements asynchrones] dthevenot
Ligne 17: Ligne 17:
  
 Un fichier au format JSON a pour extension ".json". Un fichier au format JSON a pour extension ".json".
 +
 +===== Syntaxe =====
 +
 +Un fichier JSON simple
 +<code>
 +{
 +   "nom" : "Norris",
 +   "prenom" : "Chuck",
 +   "age" : "73",
 +   "etat" : "Oklahoma"
 +}
 +</code>
 +
 +==== Règles syntaxiques ====
 +  - Il ne doit exister qu'un seul élément père par document contenant tous les autres : un élément racine.
 +  - Tout fichier JSON bien formé doit être soit un objet (commençant par "{" et se terminant par "}" ), soit un tableau (commençant par "[" et terminant par "]" ). Cependant ils peuvent être vides, ainsi "[]" et "{}" sont des JSON valides.
 +  - Les séparateurs utilisés entre deux paires/valeurs sont des virgules.
 +  - Un objet JSON peut contenir d'autres objets JSON.
 +  - Il ne peut y avoir d'éléments croisés.
 +
 +==== Éléments du format JSON ====
 +
 +Il existe deux types d'éléments :
 +
 +  - Des couples de type "nom": valeur, comme l'on peut en trouver dans les tableaux associatifs.
 +  - Des listes de valeurs, comme les tableaux utilisés en programmation.
 +
 +==== Valeurs possibles ====
 +
 +  - Primitifs : nombre, booléen, chaîne de caractères, null.
 +  - Tableaux : Liste de valeurs (tableaux et objets aussi autorisés) entrées entre crochets, séparées par des virgules.
 +  - Objets : Listes de couples "nom": valeur (tableaux et objets aussi autorisés) entrés entre accolades, séparés par des virgules.
 +
 +==== Exemple:Une structure JSON plus complexe ====
 +<code>
 +{
 +   "nom cours" : "NF29",
 +   "theme" : "ingenierie documentaire",
 +    "etudiants" : [
 +                {
 +                  "nom" : "Norris",
 +                  "prenom" : "Chuck",
 +                  "age" : "73",
 +                  "pays" : "USA" 
 +                },
 +                {
 +                  "nom" : "Doe",
 +                  "prenom" : "Jane",
 +                  "age" : "45",
 +                  "pays" : "Angleterre"
 +                },
 +                {
 +                  "nom" : "Ourson",
 +                  "prenom" : "Winnie",
 +                  "age" : "10",
 +                  "pays" : "France"
 +                }
 +              ]
 +}
 +</code>
 +
 +===== Principaux usages de JSON =====
 +==== Chargements asynchrones ====
 +
 +Avec la montée en flèche des chargements asynchrones tels que l'AJAX (Asynchronous JavaScript And XML) dans le web actuel (qui ne provoquent pas le rechargement total de la page), il est devenu de plus en plus important de pouvoir charger des données organisées, de manière rapide et efficace.
 +
 +Le format JSON s'est montré adapté à ce type de besoins car il est léger, et indépendant des langages qui l'utilisent : sa seule fonction est de décrire des données, qui sont ensuite utilisées différemment pour chaque cas suivant le contexte.
 +
 +**Exemple:** En savoir plus sur l'AJAX
 +  * https://openclassrooms.com/courses/ajax-et-l-echange-de-donnees-en-javascript/le-concept-d-ajax
 +
 +==== Les APIs ====
 +
 +Des sociétés telles que Twitter, Facebook ou LinkedIn, offrent essentiellement des services basés sur l'échange d'informations, et font preuve d'un intérêt grandissant envers les moyens possibles pour distribuer ces données à des tiers.
 +
 +Alors qu'il n'y a pas de domination totale d'un des deux formats (JSON ou XML) dans le domaine des APIs, on constate toutefois que JSON est en train de prendre le pas là où le format XML avait été pionnier : ce dernier est encore le plus utilisé, mais le JSON se démocratise très rapidement dans ce domaine.
 +
 +**Exemple:** APIs retournant des données au format JSON
 +  * Twitter : https://dev.twitter.com/rest/public : récupération de données du réseau social.
 +  * Netatmo : https://dev.netatmo.com/doc/publicapi : récupération de données météo
 +
 +==== Les bases de données ====
 +
 +Le JSON s'illustre également dans le domaine des bases de données. Actuellement, il n'y a pas de format "favori" pour ce type d'usage, mais dans une catégorie bien spécifique, le JSON se développe tout particulièrement : il s'agit des bases de données de type "NoSQL".
 +
 +Une base de données de type "NoSQL" est conçue pour proposer une très bonne capacité d'évolutivité, et pour gérer des données qui ne se conforment pas forcément au modèle en colonnes/relationnel tel qu'on le connaît dans les bases de données classiques. Ce type de BDD est également profondément orienté web.
 +
 +Les plus connues sont MongoDB, CouchDB, et Riak : Ces trois exemples sont basés sur un stockage de données au format JSON.
 +
 +On notera également qu'il est possible de soumettre des requêtes à MySQL, et de récupérer une réponse en JSON. Il en est de même pour Postgres, et d'autres bases de données "en colonnes". De tels systèmes n'ont pas été construits en considérant le JSON comme leur brique de base, mais tendent vers une adaptation à ce format.
 +
 +**Exemple:** Fonctions JSON de Postgres et MySQL
 +  * Fonctons PostgreSQL : http://www.postgresql.org/docs/9.3/static/functions-json.html
 +  * Fonctions MySQL : https://dev.mysql.com/doc/refman/5.7/en/json.html
 +
 +
  • slam/donneestructurees/le_format_json_1.1734689083.txt.gz
  • Dernière modification : 2024/12/20 11:04
  • de dthevenot