Convertir JSON en JSONL (JSON Lines)
Écrivez chaque enregistrement d'un tableau JSON sur sa propre ligne, ou regroupez des lignes JSONL dans un seul tableau JSON
Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.
Cet outil a-t-il fait le travail ?
Merci, votre retour nous est bien parvenu.
Comment ça marche
Le JSONL (JSON Lines) est un format texte avec un enregistrement JSON complet par ligne ; les jeux de données d'affinage des modèles d'IA, les chargements en masse BigQuery et Elasticsearch et les fichiers de journaux l'exigent. Si vos données sont un tableau JSON entre [ ... ], collez-les dans le panneau de gauche ; avec le sens « tableau JSON → JSONL », chaque enregistrement est écrit sur une seule ligne. Les trois questions-réponses de l'exemple deviennent un fichier JSONL de trois lignes qui se termine par un saut de ligne, comme l'attendent les outils. Les enregistrements ne sont pas régénérés : ils sont découpés dans le texte source et seuls les espaces superflus sont retirés, si bien que les grands identifiants comme 9007199254740993, que JavaScript arrondirait, et les écritures comme 1.0 restent identiques. Dans l'autre sens, collez des lignes JSONL et réglez le sens sur « JSONL → tableau JSON » : chaque ligne est lue séparément et toutes sont regroupées dans un tableau JSON ; les lignes vides sont ignorées et une ligne fautive est signalée par son numéro (par exemple « La ligne 3 n'est pas un JSON valide »).
Cet outil est aussi connu sous le nom de convertir json en jsonl, jsonl en json, convertisseur json lines, json to jsonl.
Qu'est-ce que JSONL (JSON Lines) ?
Le JSONL est un format texte où chaque ligne est à elle seule une valeur JSON valide ; les lignes sont séparées par \n et le fichier est encodé en UTF-8. Comme le fichier entier n'est pas un seul document JSON, un programme peut traiter un enregistrement avant de lire le suivant, et l'on peut ajouter des enregistrements à la fin sans réécrire le fichier. C'est ce qui en fait la norme pour les journaux, les flux de données et les jeux d'entraînement d'IA.
Qu'est-ce que Tableau JSON ?
Un tableau JSON est une liste de valeurs entre crochets, séparées par des virgules : [{"id": 1}, {"id": 2}]. C'est ce que renvoient la plupart des API et ce que l'on donne d'un coup à un tableur ou à un programme. Il n'est valide qu'une fois le crochet fermant lu, si bien que les très grands tableaux sont chargés entièrement en mémoire ; le JSONL contourne cette limite en plaçant chaque enregistrement sur sa propre ligne.
Quelle différence entre JSON et JSONL ?
Le JSON est une valeur unique : tous les enregistrements sont dans un tableau et le fichier n'est valide qu'après le dernier crochet. Le JSONL garde les enregistrements comme des valeurs JSON séparées, les unes sous les autres ; chaque ligne se lit seule, ajouter à la fin est trivial et des millions de lignes se traitent par morceaux. Le JSON convient à la lecture humaine et aux réponses d'API, le JSONL aux chargements en masse, aux journaux et aux données d'entraînement. L'un se convertit en l'autre sans perte.
Piège : un enregistrement ne doit pas tenir sur plusieurs lignes
En JSONL, le saut de ligne sépare les enregistrements : un enregistrement ne peut donc pas contenir de vrai saut de ligne, et un retour à la ligne dans un champ texte s'écrit avec l'échappement \n. Enregistrer du JSON joliment indenté sous le nom de JSONL est l'erreur la plus fréquente : le lecteur ne voit que { sur la première ligne et s'arrête. Dans le sens JSON → JSONL, cet outil retire espaces et sauts de ligne à l'intérieur d'un enregistrement sans toucher aux chaînes ; dans l'autre sens, il indique l'enregistrement coupé par son numéro de ligne.
JSON.parse et JSON.stringify de JavaScript arrondissent les entiers au-delà de 2^53 (9007199254740993 devient 9007199254740992) et écrivent 1.0 comme 1. Pour des identifiants de base de données, c'est une perte de données silencieuse. Comme cet outil découpe les enregistrements dans le texte source, les nombres, l'ordre des clés et les échappements Unicode ne changent pas.
Quel sens utiliser, et quand
Tableau JSON → JSONL : pour préparer un fichier d'affinage pour OpenAI ou un modèle similaire, charger du NEWLINE_DELIMITED_JSON dans BigQuery, envoyer une requête _bulk à Elasticsearch ou produire un journal traité ligne par ligne. Le JSONL se lit ligne après ligne sans charger tout le fichier en mémoire, d'où son usage pour les gros volumes.
JSONL → tableau JSON : pour ouvrir un export d'API ou un journal comme un seul document JSON, ou le donner à un tableur ou à un convertisseur JSON vers CSV. Si la racine est un objet (par exemple {"donnees": [...]}), l'outil produit un JSONL d'une seule ligne ; collez alors le tableau intérieur pour séparer les enregistrements.
Questions fréquentes
Comment convertir un fichier JSON en JSONL ?
Collez le tableau JSON dans le panneau de gauche de cette page et laissez le sens sur « tableau JSON → JSONL ». Chaque enregistrement devient une ligne à droite. Téléchargez le résultat avec l'extension .jsonl pour l'entraînement d'un modèle, BigQuery ou Elasticsearch.
JSONL et NDJSON, est-ce la même chose ?
En pratique, oui. Les deux demandent une valeur JSON par ligne et \n entre les lignes ; le nom JSON Lines vient de jsonlines.org, NDJSON (newline-delimited JSON) d'une spécification distincte. L'extension peut être .jsonl ou .ndjson ; la sortie de cet outil convient aux deux.
Que signifie « La ligne 3 n'est pas un JSON valide » ?
En JSONL, chaque ligne doit être à elle seule une valeur JSON complète. L'erreur indique en général qu'un enregistrement est coupé sur plusieurs lignes (JSON indenté), qu'une virgule traîne en fin de ligne ou qu'un guillemet n'est pas fermé. Vérifiez la ligne et la colonne indiquées.
Mes données sont-elles envoyées à un serveur ?
Non. La conversion se fait entièrement dans votre navigateur ; données clients ou données d'entraînement ne quittent pas cette page. Une fois chargée, la page fonctionne aussi hors connexion.