JSON vs JSONL : quelle est la différence ?

Un guide complet pour comprendre les formats JSON et JSONL (JSON Lines), leurs différences et quand utiliser chacun.

Dernière mise à jour : février 2026

Comparaison rapide

CaractéristiqueJSONJSONL (JSON Lines)
StructureObjet ou tableau uniqueUn objet JSON par ligne
Extension de fichier.json.jsonl ou .ndjson
AnalyseDoit analyser le fichier entierPeut analyser ligne par ligne
StreamingDifficileSupport natif
Gestion des gros fichiersIntensif en mémoireEfficace en mémoire
Lisibilité humaineFormaté avec indentationCompact, un enregistrement par ligne
Validation de schémaJSON Schema supportéJSON Schema par ligne
Ajout de donnéesDoit réécrire le fichier entierIl suffit d'ajouter une nouvelle ligne

Qu'est-ce que JSON ?

JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. Il est basé sur un sous-ensemble de JavaScript et est devenu le standard de facto pour l'échange de données sur le web.

Un fichier JSON contient une seule valeur JSON — généralement un objet ou un tableau. Le fichier entier doit être analysé comme une seule unité pour accéder à n'importe quelle donnée qu'il contient.

Exemple JSON
[
{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "London"},
{"name": "Charlie", "age": 35, "city": "Tokyo"}
]

Qu'est-ce que JSONL (JSON Lines) ?

JSONL (JSON Lines), également connu sous le nom de Newline Delimited JSON (NDJSON), est un format texte où chaque ligne est un objet JSON valide. Les lignes sont séparées par des caractères de retour à la ligne (\n). Contrairement au JSON standard, il n'y a pas de tableau ou d'objet englobant autour des données.

Chaque ligne d'un fichier JSONL est autonome et peut être analysée indépendamment. Cela rend JSONL idéal pour le streaming de données, les fichiers journaux et le traitement de grands jeux de données sans tout charger en mémoire.

Exemple JSONL
{"name": "Alice", "age": 30, "city": "New York"}
{"name": "Bob", "age": 25, "city": "London"}
{"name": "Charlie", "age": 35, "city": "Tokyo"}

Différences clés entre JSON et JSONL

1. Format et structure du fichier

JSON

JSON enveloppe toutes les données dans un seul objet ou tableau. Le fichier doit être syntaxiquement valide dans son ensemble — un crochet manquant à la fin invalide le fichier entier.

JSONL

JSONL stocke un objet JSON par ligne. Chaque ligne est indépendante — si une ligne contient une erreur, les autres lignes peuvent toujours être analysées.

2. Analyse et utilisation de la mémoire

JSON

JSON nécessite le chargement et l'analyse du fichier entier en une seule fois. Un fichier JSON de 1 Go nécessiterait environ 1 Go+ de mémoire pour l'analyse.

JSONL

JSONL peut être lu et analysé ligne par ligne (streaming). Même un fichier JSONL de 10 Go peut être traité avec un minimum de mémoire en lisant une ligne à la fois.

3. Streaming et données en temps réel

JSON

JSON n'est pas conçu pour le streaming. Vous ne pouvez pas commencer à traiter les données tant que le fichier ou la réponse entière n'a pas été reçue et analysée.

JSONL

JSONL est idéal pour le streaming. Chaque ligne peut être traitée dès qu'elle est reçue, ce qui le rend parfait pour les flux de données en temps réel, les journaux et les événements envoyés par le serveur.

4. Ajout et écriture de données

JSON

L'ajout de données à un tableau JSON nécessite la lecture du fichier entier, son analyse, l'ajout du nouvel élément et la réécriture du fichier complet.

JSONL

L'ajout à un fichier JSONL est aussi simple que d'ajouter une nouvelle ligne à la fin. Pas besoin de lire ou de modifier les données existantes. C'est O(1) contre O(n) pour JSON.

5. Lisibilité humaine

JSON

JSON supporte l'affichage formaté avec indentation, ce qui le rend très lisible pour les fichiers de configuration et les réponses API.

JSONL

JSONL est compact par conception — un enregistrement par ligne. Il est optimisé pour le traitement machine plutôt que pour la lecture humaine, bien que les lignes individuelles puissent être formatées.

Quand utiliser JSON vs JSONL

JSONUtilisez JSON quand :
  • Vous travaillez avec des fichiers de configuration
  • Vous construisez des corps de requêtes/réponses API REST
  • Vous stockez des données structurées de petite taille (moins de 10 Mo)
  • Les données doivent être lisibles et modifiables par un humain
  • Vous travaillez avec des structures de données imbriquées et hiérarchiques
  • Échange de données côté navigateur
JSONLUtilisez JSONL quand :
  • Vous traitez de grands jeux de données (100 Mo+)
  • Vous streamez des données en temps réel
  • Vous écrivez des fichiers journaux et des données d'événements
  • Vous entraînez des modèles d'apprentissage automatique (OpenAI, Hugging Face)
  • Vous travaillez avec des pipelines ETL et du traitement de données
  • Vous ajoutez fréquemment des données
  • Vous traitez des données avec des outils Unix (grep, awk, sed)

Cas d'utilisation courants

Apprentissage automatique et IA

JSONL

JSONL est le format standard pour les données d'entraînement ML. OpenAI utilise JSONL pour les jeux de données de fine-tuning, et de nombreux frameworks ML attendent une entrée JSONL. Chaque ligne représente un exemple d'entraînement.

Journalisation applicative

JSONL

Les journaux serveur, les événements applicatifs et les pistes d'audit sont naturellement adaptés à JSONL. Chaque événement est écrit sur une seule ligne, ce qui facilite l'ajout, la recherche avec grep et le traitement avec des outils de streaming.

API Web et configuration

JSON

Les API REST utilisent généralement JSON pour les corps de requêtes et de réponses. Les fichiers de configuration (.json) utilisent JSON pour des paramètres structurés et lisibles avec des objets imbriqués.

Big Data et analytique

JSONL

Les pipelines de données, les processus ETL et les outils d'analyse utilisent JSONL pour traiter de grands volumes de données. Chaque enregistrement peut être traité indépendamment, permettant le traitement parallèle et les modèles MapReduce.

Exemples de code

Lire du JSON en JavaScript
// Reading JSON - must load entire file
const data = JSON.parse(fs.readFileSync('data.json', 'utf8'));
// Access data
data.forEach(item => {
console.log(item.name);
});
Lire du JSONL en JavaScript
// Reading JSONL - stream line by line
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.jsonl')
});
for await (const line of rl) {
const item = JSON.parse(line);
console.log(item.name);
}
Convertir JSON en JSONL
// JSON array to JSONL
const jsonArray = JSON.parse(fs.readFileSync('data.json', 'utf8'));
const jsonl = jsonArray
.map(item => JSON.stringify(item))
.join('\n');
fs.writeFileSync('data.jsonl', jsonl);
Convertir JSONL en JSON
// JSONL to JSON array
const lines = fs.readFileSync('data.jsonl', 'utf8')
.split('\n')
.filter(line => line.trim());
const jsonArray = lines.map(line => JSON.parse(line));
fs.writeFileSync('data.json', JSON.stringify(jsonArray, null, 2));

Convertir JSON & JSONL en ligne

Utilisez nos outils en ligne gratuits pour convertir instantanément entre les formats JSON et JSONL — aucune installation nécessaire.

Essayez notre visualiseur JSONL

Visualisez et modifiez des fichiers JSONL jusqu'à 1 Go instantanément dans votre navigateur. Sans téléversement, sans inscription requise.

Questions fréquemment posées

JSON vs JSONL : quelle est la différence ? Guide complet