Skip to content
jsonforge.app
Retour au blog
Tutoriel15 min de lecture

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 automatically

Python

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