Chapitre 1.3 : Le format JSON
Temps d'étude : 35 minutes
1. JSON : Le langage de la communication spatiale
Imaginez qu'une sonde spatiale et le Centre de Contrôle de Mission parlent des langues différentes. Le JSON (JavaScript Object Notation) est un langage de données universel, compréhensible par les humains et les machines. Comme la langue internationale des astronautes !
Propriétés principales :
- 🪶 Léger : transmission rapide même avec un signal faible
- 👀 Lisible par l'homme : la structure est visible à l'œil nu
- 🔄 Universel : pris en charge par tous les langages de programmation
💡 Analogie spatiale :
Le JSON est comme un télégramme numérique avec des données sur les étoiles. Au lieu du morse, des structures claires
{clé: valeur}
.
2. Anatomie d'un message JSON
Le JSON est constitué de deux types de structures :
A. Objets (Vaisseaux spatiaux)
B. Tableaux (Amas stellaires)
[
{"name": "Sirius", "magnitude": -1.46},
{"name": "Canopus", "magnitude": -0.74},
{"name": "Arcturus", "magnitude": -0.05}
]
⚡ Règles de syntaxe :
- Clés entre guillemets
" "
- Valeurs : chaînes de caractères, nombres, booléens (
true
/false
),null
- Données séparées par des virgules
- Accolades
{}
pour les objets, crochets[]
pour les tableaux
3. JSON vs XML : La bataille des formats
Paramètre | JSON (Satellite moderne) | XML (Ancien télescope) |
---|---|---|
Lisibilité | Élevée (accès direct aux champs) | Faible (balises <planet>...</planet> ) |
Taille | Compact | Volumineux (+30% à la taille) |
Traitement | Rapide | Lent |
Exemple | {"planet": "Mars"} |
<planet>Mars</planet> |
🔭 Pourquoi le JSON a-t-il gagné dans l'espace ?
Les API de la NASA, SpaceX et l'ESA utilisent le JSON — il est idéal pour le transfert de données !
4. Travailler avec JSON dans le code
Exemple Python (récupération de données sur la Lune) :
import requests
import json
# Nous utilisons une API réelle, par exemple, pour obtenir des données sur le système solaire
# de l'API OpenData du Système Solaire
try:
response = requests.get("https://api.le-systeme-solaire.net/rest/bodies/terre")
response.raise_for_status() # Vérifie les erreurs HTTP (4xx, 5xx)
planet_data = response.json()
print(f"Nom : {planet_data['englishName']}")
print(f"Satellites : {[moon['moon'] for moon in planet_data['moons']]}")
# Conversion du dictionnaire Python en chaîne JSON pour l'enregistrement
planet_json_str = json.dumps(planet_data, indent=2, ensure_ascii=False) # ensure_ascii=False pour le cyrillique
print("\n--- JSON Formaté ---")
print(planet_json_str)
except requests.exceptions.RequestException as e:
print(f"Erreur de requête : {e}")
Exemple JavaScript (traitement des données du télescope) :
const Data = `{
"id": "terre",
"name": "La Terre",
"englishName": "Earth",
"isPlanet": true,
"moons": [
{
"moon": "La Lune",
"rel": "https://api.le-systeme-solaire.net/rest/bodies/lune"
}
],
"semimajorAxis": 149598023,
"perihelion": 147095000,
"aphelion": 152100000,
"eccentricity": 0.0167,
"inclination": 0,
"mass": {
"massValue": 5.97237,
"massExponent": 24
},
"vol": {
"volValue": 1.08321,
"volExponent": 12
},
"density": 5.5136,
"gravity": 9.8,
"escape": 11190,
"meanRadius": 6371.0084,
"equaRadius": 6378.1366,
"polarRadius": 6356.8,
"flattening": 0.00335,
"dimension": "",
"sideralOrbit": 365.256,
"sideralRotation": 23.9345,
"aroundPlanet": null,
"discoveredBy": "",
"discoveryDate": "",
"alternativeName": "",
"axialTilt": 23.4393,
"avgTemp": 288,
"mainAnomaly": 358.617,
"argPeriapsis": 85.901,
"longAscNode": 18.272,
"bodyType": "Planet"
}`;
const dataObj = JSON.parse(Data);
console.log(dataObj.target);
5. Validation JSON : Vérification du "signal"
Avant d'utiliser les données, assurez-vous que le JSON :
-
A une structure correcte (vérifiez les parenthèses !)
-
Contient les champs attendus
-
N'a pas d'erreurs de syntaxe
Outils : - JSONLint (comme un détecteur de débris spatiaux pour le JSON) - Parseurs de langage intégrés (généreront une erreur en cas de format incorrect)
⚠️ Exemple d'erreur :
{"planet": "Mars"
→ Pas d'accolade fermante !Solution : Utilisez toujours
json.loads()
en Python ouJSON.parse()
en JS pour la vérification.
Quiz pour le renforcement
🚀 Résumé du chapitre :
Le JSON est l'espéranto spatial du monde des API. En connaissant sa structure, vous pourrez :
-
📡 Recevoir des données de télescopes et de sondes
-
🔧 Convertir des informations entre les systèmes
-
🛰️ Sauvegarder des données scientifiques dans des fichiers
Préparez-vous à l'amarrage ! Dans le prochain chapitre, nous explorerons l'architecture REST API — le système de contrôle de la "station spatiale" de votre serveur.
📌 Pratique : Rendez-vous sur NASA Open APIs, trouvez l'API des astéroïdes (Asteroids NeoWs) et étudiez la structure JSON de la réponse !