Tutoriel JSON

JSON est un format d'échange léger, très utilisé dans les API et fichiers de config. Ce guide couvre la syntaxe essentielle.

Qu'est-ce que JSON ?

JSON s'inspire des objets JavaScript mais reste du texte indépendant du langage.

Un JSON valide a une seule valeur racine : objet {...} ou tableau [...].

Règles de base

Clés et chaînes entre guillemets doubles ; \ pour échapper.

Virgules entre éléments, pas de virgule finale. Pas de commentaires ni undefined.

Nombres sans zéros initiaux ; true et false en minuscules.

Six types

string, number, boolean, null, object, array :

{
  "name": "Alice",
  "age": 30,
  "active": true,
  "score": null
}

Chaînes et échappement

Guillemets doubles, UTF-8, séquences \n, \t, \", \\

{
  "message": "Hello\nWorld",
  "quote": "He said \"Hi\"",
  "path": "C:\\Users\\data",
  "emoji": "你好 🎉",
  "unicode": "\u0041"
}

Nombres, booléens et null

Entiers, décimaux, négatifs, notation scientifique. null = valeur vide.

{
  "count": 42,
  "price": 19.99,
  "negative": -1,
  "scientific": 1.5e10,
  "flag": true,
  "disabled": false,
  "empty": null
}

Structures vides

[] tableau vide, {} objet vide, "" chaîne vide.

{
  "tags": [],
  "meta": {},
  "note": ""
}

Objets

Paires clé:valeur dans {}.

{
  "user": {
    "id": 1001,
    "email": "alice@example.com"
  }
}

Tableaux

Éléments ordonnés dans [] ; peuvent aussi être la racine :

Tableau dans un objet
{
  "tags": ["json", "tutorial", "web"],
  "scores": [95, 88, 72]
}
Tableau racine
[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" }
]

Imbrication

Objets et tableaux imbriqués sur plusieurs niveaux.

{
  "project": "QyCreate JSON",
  "version": 1,
  "features": ["format", "validate", "minify"],
  "settings": {
    "indent": 2,
    "theme": "light"
  },
  "contributors": [
    { "name": "Alice", "role": "author" },
    { "name": "Bob", "role": "reviewer" }
  ]
}

JSON vs JavaScript

JSON est un format de données, pas du code exécutable. Pas de commentaires, fonctions ou undefined.

JSON.parse() / JSON.stringify() ; JSON5 est une extension.

Erreurs courantes

Clés non quotées, guillemets simples, virgule finale :

Invalide
{
  name: "Alice",
  "items": [1, 2, 3,],
}
Correct
{
  "name": "Alice",
  "items": [1, 2, 3]
}

Pratiquer avec l'outil

Coller du JSON ou téléverser jusqu'à 4 Mo. Exemple, formater et minifier—l'indentation facilite la lecture des structures imbriquées.

Erreurs avec ligne/colonne ; annuler/rétablir ; copier ou télécharger—traitement local.