JSON : qu'est-ce que c'est, structure de données et principe de fonctionnement

Auteur : IT Sectr Publié le : 2026-03-08 Temps de lecture : 8 min

JSON (JavaScript Object Notation) est un format textuel d'échange de données basé sur la syntaxe des objets JavaScript. Il est utilisé partout : des API REST et fichiers de configuration au stockage de données dans les bases de données et applications mobiles. Selon le site officiel de JSON, le format est indépendant du langage et pris en charge par pratiquement toutes les plateformes modernes. JSON est devenu le standard de facto pour le transfert de données entre le client et le serveur.

Points clés

  • JSON — un format textuel léger pour les données structurées basé sur la syntaxe JavaScript
  • Six types de données — chaîne, nombre, booléen, null, tableau et objet pour toutes les structures
  • Universalité — pris en charge par tous les langages de programmation et plateformes
  • API REST — le principal format d'échange de données dans les applications web et mobiles
  • Lisibilité humaine — syntaxe simple facile à lire et à éditer sans outils

Qu'est-ce que JSON ?

JSON est un format textuel pour représenter des données structurées, basé sur la syntaxe JavaScript. Malgré ses origines en JavaScript, le format est complètement indépendant du langage — des analyseurs et des sérialiseurs existent pour tous les langages de programmation populaires.

L'histoire de JSON a commencé au début des années 2000, lorsque Douglas Crockford a extrait un sous-ensemble de la syntaxe JavaScript pour l'échange de données. En 2013, le format a été normalisé sous ECMA-404, puis sous ISO/IEC 21778:2017. Le nom signifie JavaScript Object Notation.

Le principal avantage de JSON est sa syntaxe minimaliste. Seuls six types sont utilisés pour décrire les données : chaîne, nombre, booléen, null, tableau et objet. Cela suffit pour représenter toute structure de données utilisée dans les applications.

Où JSON est utilisé

  • API REST — le principal format pour les requêtes et réponses entre serveur et client
  • Fichiers de configuration — package.json, tsconfig.json, .prettierrc
  • Bases de données — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Applications mobiles — stockage des paramètres, mise en cache des données
  • Technologies web — WebSocket, Server-Sent Events, localStorage

Syntaxe et types de données JSON

La syntaxe JSON est extrêmement simple : les données sont représentées sous forme de paires clé-valeur, où la clé est une chaîne entre guillemets doubles et la valeur est l'un des six types de base. Les objets sont délimités par des accolades, les tableaux par des crochets. Les chaînes doivent utiliser des guillemets doubles ; les guillemets simples ne sont pas autorisés.

Les nombres en JSON peuvent être entiers ou à virgule flottante, positifs ou négatifs, avec notation exponentielle. Les valeurs booléennes sont représentées par les littéraux true et false, et l'absence de valeur par null. Les tableaux contiennent un ensemble ordonné de valeurs de tout type, y compris des tableaux et objets imbriqués.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "prise en charge de l'imbrication"
  }
}
Type Exemple Description
Chaîne « texte » Entre guillemets doubles, avec séquences d'échappement
Nombre 42 Entier, virgule flottante, exponentiel
Booléen true true ou false — sans guillemets
null null Absence de valeur
Objet {} Ensemble non ordonné de paires clé-valeur
Tableau [] Liste ordonnée de valeurs

JSON dans les API REST

JSON est le principal format d'échange de données pour les API REST dans le développement mobile et web. Le serveur envoie JSON dans le corps de la réponse, le client dans le corps de la requête. L'en-tête Content-Type standard pour JSON est application/json.

Les API REST modernes utilisent JSON pour transmettre tous les types de données : des listes simples aux structures imbriquées complexes avec relations entre entités. Les bibliothèques clientes (comme Axios en JavaScript ou Retrofit sur Android) sérialisent et désérialisent automatiquement JSON, libérant le développeur de l'analyse manuelle.

Un avantage important de JSON dans les API REST est la possibilité de transfert partiel de données (réponse partielle) via des paramètres de requête, ainsi que la prise en charge de ressources imbriquées sans requêtes supplémentaires au serveur.

Analyse JSON sur les plateformes mobiles

L'analyse JSON sur les plateformes mobiles est effectuée à l'aide d'outils intégrés. Android utilise Gson de Google ou Moshi de Square, iOS utilise le protocole Codable avec JSONDecoder. Chaque plateforme fournit des outils pratiques pour convertir JSON en objets natifs et vice versa.

JSON sur Android (Kotlin)

Sur Android, l'approche populaire utilise Gson ou Moshi. Il suffit de définir une classe de données avec des annotations @SerializedName et d'appeler fromJson pour la désérialisation. La bibliothèque fait correspondre automatiquement les noms des champs JSON aux propriétés de la classe.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON sur iOS (Swift)

Sur iOS, le protocole intégré Codable avec JSONDecoder est utilisé. La structure de données est déclarée comme une struct conforme à Codable, après quoi JSON est analysé en une seule ligne. JSONEncoder effectue la sérialisation inverse — convertit un objet en JSON pour l'envoyer au serveur.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML : comparaison des formats

JSON et XML sont les deux principaux formats pour transmettre des données structurées. JSON gagne en simplicité et performance, XML en rigueur et validation. Le choix entre eux dépend des exigences du projet : les API REST utilisent plus souvent JSON, les documents complexes avec schémas utilisent XML.

XML nécessite des balises de fermeture pour chaque élément, ce qui augmente la taille des données de 2 à 3 fois par rapport à JSON. En même temps, XML prend en charge les espaces de noms, les schémas XSD, les attributs et la transformation XSLT, ce qui le rend plus puissant pour la gestion de documents et l'intégration de systèmes d'entreprise.

Caractéristique JSON XML
Syntaxe Minimaliste, clé-valeur Basée sur les balises, ouverture et fermeture
Taille des données Compacte 2 à 3 fois plus grande que JSON
Types de données Six types de base Texte uniquement, types via schémas
Validation Non intégrée, via JSON Schema XSD — stricte et mature
Espaces de noms Aucun Prise en charge complète des namespace
Vitesse d'analyse Élevée Plus faible en raison de la complexité

Exemples de travail avec JSON

Les exemples montrent les opérations typiques avec JSON dans le développement mobile : analyse des réponses API, création de JSON pour l'envoi et traitement des structures imbriquées. Comprendre ces schémas est essentiel pour tout développeur d'applications mobiles.

Sérialisation d'un objet en JSON

En JavaScript, JSON.stringify convertit un objet en chaîne JSON. Le deuxième argument peut être un tableau de clés pour une sérialisation sélective ou une fonction de remplacement. Le troisième argument définit l'indentation pour le formatage.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Analyse de JSON imbriqué

En Kotlin avec la bibliothèque Moshi, les objets JSON imbriqués sont traités via des classes de données imbriquées. L'annotation @Json spécifie le nom du champ JSON s'il diffère du nom de la propriété de la classe. Les tableaux sont représentés comme List avec le type d'élément.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema : validation de structure

JSON Schema est un langage pour décrire la structure d'un document JSON, similaire à XSD pour XML. En utilisant JSON Schema, vous pouvez spécifier des champs obligatoires, des types de données, des plages de valeurs, des motifs de chaînes et une structure imbriquée. La validation du schéma détecte les erreurs de données avant leur traitement dans l'application.

JSON Schema est largement utilisé dans OpenAPI (Swagger) pour documenter les API REST, dans les formulaires de validation de données d'entrée et dans les tests. Le fichier de schéma est lui-même un document JSON, permettant aux analyseurs JSON standard de le lire. Des validateurs en ligne et des bibliothèques existent pour tous les langages de programmation populaires.

Dans le développement mobile, JSON Schema est utilisé pour valider les réponses du serveur pendant les tests et pour vérifier les fichiers de configuration. Des bibliothèques comme network-validator sur Android et json-schema-validator permettent d'intégrer la validation directement dans le processus de développement, prévenant les erreurs à un stade précoce.

Questions fréquentes

Quels types de données JSON prend-il en charge ?

JSON prend en charge six types : chaîne (entre guillemets doubles), nombre (entier et à virgule flottante), booléen (true/false), null, objet (paires clé-valeur dans {}) et tableau (liste de valeurs dans []). Cela suffit pour toute structure de données dans les applications.

Peut-on utiliser des commentaires en JSON ?

Non, le standard JSON ne prend pas en charge les commentaires. Si vous avez besoin de commentaires, utilisez JSON5 (JSON étendu) ou ajoutez un champ de description, par exemple « _comment » : « explication ». Certains outils, comme VS Code, prennent en charge les commentaires dans les fichiers JSON de configuration, mais il s'agit d'une extension non standard.

En quoi JSON diffère-t-il de JSONB dans PostgreSQL ?

JSONB est un format de stockage binaire pour JSON dans PostgreSQL. Contrairement au JSON textuel, JSONB est plus rapide à traiter, prend en charge l'indexation (index GIN) et garantit l'unicité des clés. Cependant, JSONB occupe plus d'espace disque en raison des métadonnées ajoutées.

Comment vérifier si JSON est valide ?

Utilisez JSONLint (jsonlint.com) pour une validation rapide, le JSON.parse() intégré en JavaScript avec try-catch, ou des plugins IDE. La validation inclut la vérification des guillemets corrects, de la fermeture des parenthèses et de la conformité des types. Pour les schémas complexes, utilisez JSON Schema Validator.

Quelle est la taille maximale d'un fichier JSON ?

Il n'y a aucune limite dans la spécification JSON. En pratique, la taille est limitée par la mémoire de l'appareil et les capacités de l'analyseur. Pour les applications mobiles, il est recommandé de ne pas dépasser 1 à 2 Mo par réponse, et pour les grandes données, d'utiliser la pagination ou le streaming.

Résumé

  • JSON — un format textuel minimaliste avec six types de données pour échanger des informations structurées
  • Indépendance du langage — des analyseurs JSON existent pour tous les langages de programmation populaires
  • API REST utilise JSON comme format standard pour les requêtes et réponses dans les applications mobiles
  • Analyse effectuée avec des outils intégrés : Gson/Moshi sur Android, Codable sur iOS
  • JSON est 2 à 3 fois plus compact que XML, mais inférieur à Protobuf en performance
  • Lisibilité humaine — la syntaxe est facile à lire et à déboguer sans outils spéciaux
  • JSON Schema — un outil supplémentaire pour valider la structure et les types de données

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi