0Pricing
Lua Academy · Leçon

Pourquoi JSON

Bases de l’échange de données.

Pourquoi JSON est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.

Qu’est-ce que JSON ?

JSON (notation d’objets JavaScript) est un format textuel léger servant à stocker et à échanger des données. Il est lisible par les humains et indépendant du langage.

Presque toutes les API web, les fichiers de configuration et les bases de données utilisent JSON. Apprendre à convertir JSON en tables Lua et inversement permet à vos scripts de communiquer avec le monde extérieur.

JSON ressemble à Lua

Les objets JSON utilisent des accolades contenant des paires clé-valeur, tandis que les tableaux utilisent des crochets. Cette structure correspond presque parfaitement aux tables Lua.

Un objet JSON devient une table Lua dont les clés sont des chaînes ; un tableau JSON devient une table Lua dont les indices numériques commencent à 1.

-- JSON text
-- {"name": "Ada", "age": 36}

-- Equivalent Lua table
local person = { name = "Ada", age = 36 }
print(person.name)

Lua n’intègre pas JSON

Contrairement à certains langages, Lua standard n’intègre pas la prise en charge de JSON. Vous devez utiliser une bibliothèque.

Les deux choix les plus courants sont dkjson (en Lua pur, facile à installer) et lua-cjson (une bibliothèque C rapide). Toutes deux fournissent les fonctions encode et decode.

Charger une bibliothèque JSON

Vous chargez une bibliothèque JSON avec require, comme n’importe quel autre module Lua. La table renvoyée contient les fonctions dont vous avez besoin.

Ici, nous chargeons dkjson et l’associons à une variable locale nommée json.

local json = require("dkjson")
-- now json.encode and json.decode are ready

Les deux opérations essentielles

Avec JSON, vous ne faites que deux choses : decode et encode.

Le décodage transforme une chaîne JSON en table Lua que vous pouvez lire. L’encodage transforme une table Lua en chaîne JSON que vous pouvez envoyer ou enregistrer.

local json = require("dkjson")
local t = json.decode('{"ok": true}')  -- string -> table
local s = json.encode(t)                -- table -> string

Exemple de décodage

Lorsque vous recevez du texte JSON depuis un fichier ou une API, json.decode l’analyse pour en faire une table Lua utilisable.

Après le décodage, vous accédez aux champs avec la syntaxe Lua habituelle.

local json = require("dkjson")
local text = '{"city": "Oslo", "temp": 7}'
local data = json.decode(text)
print(data.city, data.temp)

Exemple d’encodage

Pour créer du JSON, remplissez une table Lua et transmettez-la à json.encode. Le résultat est une chaîne prête à être écrite ou transmise.

local json = require("dkjson")
local book = { title = "Lua", pages = 328 }
local text = json.encode(book)
print(text)

Types de données JSON

JSON prend en charge un petit ensemble de types : chaînes, nombres, booléens, valeur nulle, objets et tableaux.

Lua les associe aux chaînes, aux nombres, aux booléens, à nil et aux tables. Notez que la valeur JSON null n’a pas d’équivalent Lua parfait, ce qui peut provoquer des surprises.

Pourquoi choisir JSON plutôt que des formats personnalisés

Vous pourriez inventer votre propre format textuel, mais JSON est déjà compris partout. Les éditeurs en colorent la syntaxe, les validateurs le vérifient et les autres langages l’analysent instantanément.

Utiliser JSON rend vos données portables et votre code plus facile à déboguer.

Cas d’utilisation courants

Vous utiliserez JSON pour appeler des API REST, lire des fichiers de configuration, mettre des résultats en cache ou transmettre des données entre des processus.

Dans chaque cas, le schéma est le même : décoder le JSON reçu en table, le traiter, puis le réencoder lorsque vous devez le transmettre.

local json = require("dkjson")
-- typical round trip
local data = json.decode(incoming)
data.seen = true
local out = json.encode(data)

Gérer les erreurs de décodage

Le décodage peut échouer si le texte n’est pas un JSON valide. dkjson renvoie la valeur, une position et un message d’erreur au lieu de provoquer un plantage.

Vérifiez toujours si la première valeur renvoyée est nil avant de l’utiliser.

local json = require("dkjson")
local data, pos, err = json.decode("{bad")
if not data then
  print("Invalid JSON:", err)
end

Vérification rapide

Vérifiez votre compréhension des bases de JSON en Lua.

Récapitulatif

JSON est un format de données universel qui correspond naturellement aux tables Lua. Lua standard ne prend pas en charge JSON ; vous devez donc charger une bibliothèque comme dkjson ou cjson.

Les deux opérations essentielles sont json.decode (chaîne vers table) et json.encode (table vers chaîne). Vous allez maintenant découvrir en détail comment décoder du JSON en tables.

Questions Fréquemment Posées

La leçon « Pourquoi JSON » est-elle gratuite ?

Oui — le texte complet de « Pourquoi JSON » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Pourquoi JSON » ?

Bases de l’échange de données. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Lua Academy ?

Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Pourquoi JSON » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?

Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi JSON
  2. Décoder du JSON en tables
  3. Encoder des tables en JSON
  4. Gérer les données imbriquées
← Retour à Lua Academy