Ce que fait cet outil
Un tableau JSON devient un document JSON par ligne.
[
{ "id": 1, "name": "Ada" },
{ "id": 2, "name": "Grace" }
]
{"id":1,"name":"Ada"}
{"id":2,"name":"Grace"}
Chaque ligne est minifiée, et ce n’est pas un choix d’esthétique : un document indenté occupe plusieurs lignes, et en NDJSON un saut de ligne signifie enregistrement suivant. L’indentation et le format s’excluent.
La racine doit être un tableau
Le tableau est la liste des enregistrements. Un objet à la racine est un document unique ; le découper en lignes reviendrait à décider que ses clés sont des enregistrements — une supposition que cet outil ne fait pas. La conversion s’arrête.
Les éléments, eux, sont libres : null, 42 et "texte" sont des documents JSON valides, donc des lignes NDJSON valides. Les enregistrements sont généralement des objets, mais rien ici ne l’impose.
Les entiers longs gardent leurs chiffres
[{ "id": 12345678901234567890 }]
ressort avec ses vingt chiffres. Un convertisseur qui passe par un nombre JavaScript écrit 12345678901234567000 à la place, sans rien dire : la valeur change et le fichier reste parfaitement bien formé.
Celui-ci faisait exactement cela. Le défaut a été trouvé en écrivant cette page, puis corrigé ; l’identifiant survit maintenant à l’aller-retour par le NDJSON.
Un tableau vide donne un fichier vide
[] ne produit aucune sortie, et c’est la bonne réponse : le NDJSON n’a pas d’autre façon d’écrire « zéro enregistrement » qu’un fichier vide. Cela signifie qu’un résultat vide et une entrée vide se ressemblent — à savoir avant d’en conclure qu’il ne s’est rien passé.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.