Exemples JSON en 7 langages : JavaScript, Python, Go, Rust, PHP, Java, C#
JSON est universel, mais chaque langage le gère différemment. Voici une référence côte à côte pour analyser, sérialiser et gérer les erreurs dans sept langages populaires.
JavaScript
JavaScript est le terrain natif de JSON. Analysez avec JSON.parse, sérialisez avec JSON.stringify, et enveloppez toujours l'analyse dans un try/catch.
// Parse a JSON string into an object
const data = JSON.parse('{"name": "Alice", "age": 30}');
console.log(data.name); // "Alice"
// Serialize an object back to JSON
const json = JSON.stringify(data, null, 2);
// Fetch JSON from an API
const res = await fetch("/api/users/1");
const user = await res.json(); // parsed automaticallyPython
Le module json intégré à Python associe les objets JSON à des dicts et les tableaux à des lists. Utilisez json.loads (chaîne → objet) et json.dumps (objet → chaîne).
import json
# Parse JSON string into a dict
data = json.loads('{"name": "Alice", "age": 30}')
# Serialize a dict to a pretty JSON string
text = json.dumps(data, indent=2, ensure_ascii=False)
# Read/write a JSON file
with open("data.json", encoding="utf-8") as f:
data = json.load(f)Go
Le package encoding/json de Go associe le JSON à des structs via des tags. Utilisez json.Marshal pour sérialiser et json.Unmarshal pour analyser, les tags de struct contrôlant les noms de champs.
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
// Struct → JSON
b, _ := json.Marshal(User{Name: "Alice", Age: 30})
// JSON → struct
var u User
_ = json.Unmarshal([]byte(`{"name":"Bob","age":25}`), &u)Rust, PHP, Java, C#
Rust utilise les crates serde et serde_json pour une (dé)sérialisation à coût nul et type-safe. PHP dispose nativement de json_encode/json_decode sans aucune dépendance. Java utilise généralement l'ObjectMapper de Jackson. Le C# moderne s'appuie sur System.Text.Json.
<?php
// PHP array → JSON
$json = json_encode(["name" => "Alice", "age" => 30],
JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
// JSON → PHP array
$data = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
echo "JSON error: " . json_last_error_msg();
}Bonnes pratiques universelles
Gérez toujours les erreurs d'analyse — un JSON mal formé fera planter du code non protégé. Pour les API en production, validez par rapport à un JSON Schema avant le traitement. Préférez les structs/classes typés aux maps génériques dans les langages compilés. Affichez en mode lisible pendant le développement, minifiez en production.
FAQ
- Quel langage a l'analyseur JSON le plus rapide ?
- Les langages compilés (Go, Rust, Java avec Jackson, C# avec System.Text.Json) surpassent généralement les langages interprétés. Pour la plupart des applications, la différence est négligeable face aux coûts réseau et de base de données.
- Faut-il utiliser un struct typé ou une map générique ?
- Les structs/classes typés détectent les incompatibilités de schéma à la compilation et offrent l'autocomplétion. N'utilisez les maps génériques que lorsque la forme est véritablement dynamique ou inconnue.
Articles associés
Qu'est-ce que JSON ? Le guide complet pour débutants →
JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire pour les humains et à analyser pour les machines. Apprenez la syntaxe, les types de données et la structure qui font tourner les API modernes.
L'histoire de JSON : de 2000 au standard de l'industrie →
Suivez JSON depuis l'idée de Douglas Crockford en 2001, en passant par son adoption par Yahoo, jusqu'à devenir le standard ECMA-404 qui fait tourner 90 % des API modernes.
Le guide complet de JSON Schema (Draft 7) →
JSON Schema est le standard pour décrire et valider la structure JSON. Apprenez les mots-clés essentiels, construisez un véritable schéma d'API et appliquez les bonnes pratiques.