À quoi ça sert
JSON Lines (aussi appelé JSONL ou NDJSON) stocke une valeur JSON par ligne. C’est le format privilégié pour les journaux, les exports de données, les API en streaming, les chargements en masse BigQuery et Elasticsearch, et les jeux de données d’apprentissage automatique comme les fichiers de fine-tuning OpenAI, car un programme peut lire ou ajouter un enregistrement à la fois sans charger tout le fichier.
Beaucoup d’outils attendent pourtant un seul tableau JSON. Ce convertisseur transforme du JSON Lines en tableau JSON formaté, et un tableau JSON en JSON Lines avec un enregistrement compact par ligne.
Mode d’emploi
- Choisissez le Sens : JSON Lines → JSON ou JSON → JSON Lines.
- Collez vos données, importez un fichier
.jsonl,.ndjsonou.json, ou cliquez sur Exemple. - Pour une sortie JSON, choisissez 2 ou 4 espaces d’indentation, ou Compact pour une seule ligne.
- Copiez ou téléchargez le résultat, ou utilisez Utiliser comme entrée pour reconvertir.
Si une ligne n’est pas du JSON valide, l’erreur indique le numéro de ligne et la colonne, pour aller droit à l’enregistrement cassé — pratique quand un journal contient une entrée tronquée parmi des milliers.
Exemple
Ces trois lignes de JSON Lines :
{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}
deviennent ce tableau JSON :
[
{
"id": 1,
"event": "signup"
},
{
"id": 2,
"event": "login"
},
{
"id": 3,
"event": "logout"
}
]
Dans l’autre sens, chaque élément du tableau est écrit sur une ligne, sans espaces, et le fichier se termine par un retour à la ligne.
Lequel choisir
Utilisez JSON Lines quand les enregistrements sont produits ou consommés un par un : ajout à des journaux, résultats en streaming, répartition d’un gros jeu de données entre plusieurs workers ou traitement avec des outils par ligne comme grep, head et wc -l. Utilisez un tableau JSON quand un programme a besoin de toute la collection d’un coup, comme un fichier de configuration, des données de test ou le corps de réponse d’un endpoint REST.
FAQ
› Quelle différence entre JSONL, NDJSON et JSON Lines ?
Ce sont des noms du même format : une valeur JSON complète par ligne, séparée par des retours à la ligne. JSON Lines (.jsonl) et le JSON délimité par des retours à la ligne (.ndjson) ne diffèrent que par le nom et l’extension.
› Les lignes vides sont-elles autorisées ?
Les lignes vides et le retour à la ligne final sont ignorés à la lecture. Les fins de ligne Windows (CRLF) et le BOM UTF-8 sont aussi gérés.
› Mon fichier est du JSON indenté, un objet occupe plusieurs lignes. Pourquoi ça échoue ?
En JSON Lines, chaque valeur doit tenir sur une seule ligne. Si votre entrée est un tableau JSON classique, passez le sens à JSON → JSON Lines ; s’il s’agit d’une suite d’objets indentés, placez-les d’abord dans un tableau.
› La conversion modifie-t-elle les nombres ou l’ordre des clés ?
Non. Les valeurs et l’ordre des clés sont conservés ; seuls les espaces changent. Les très grands entiers au-delà de la plage sûre de JavaScript (environ 9 millions de milliards) peuvent perdre en précision, comme dans tout outil JSON du navigateur.