NDJSON est une valeur JSON par ligne, et c'est tout le format. Il existe parce qu'un lecteur peut gérer une ligne et l'oublier, ce qui rend un fichier journal ou une grande exportation fluxable quand un seul grand tableau ne l'est pas : rien n'a besoin de contenir le document entier en mémoire en même temps.
Utilisation du convertisseur JSON vers NDJSON
Choisissez une direction et appuyez sur Convertir. Pour aller en NDJSON, il faut un tableau, car c'est la forme de JSON qui est une séquence de valeurs ; tout type d'élément est autorisé sur une ligne, pas seulement les objets.
[{"id": 12345678901234567890}, "plain string", 42, null]
devient :
{"id":12345678901234567890}
"plain string"
42
null
Chaque élément obtient sa propre ligne, minifiée, et le id de vingt
chiffres conserve chaque chiffre car les deux directions passent par le
flux de tokens plutôt que par JSON.parse.
Lignes vides
Une ligne entièrement vide est ignorée plutôt que traitée comme une erreur. Presque tous les vrais fichiers NDJSON se terminent par un saut de ligne de fin, qui strictement signifie une dernière ligne vide, donc échouer sur une rejetterait presque tous les fichiers que les gens ont réellement. L'outil indique combien il en a ignoré junto avec combien d'enregistrements il a écrits, car un fichier qui s'est avéré être à moitié vaut la peine de le savoir.
Relire, et ce que vous dit une ligne cassée
Convertir NDJSON en JSON valide chaque ligne individuellement et signale un échec par le numéro de ligne que votre fichier a réellement. Étant
{"a":1}
{"a":2}
{"a":}
{"a":4}
l'échec est signalé à la ligne 3, pas à la ligne 1 ou à la fin du fichier, vous pouvez donc aller directement à l'enregistrement cassé dans un fichier de mille lignes sans compter.
Une valeur par ligne, strictement
Deux valeurs JSON sur une seule ligne n'est pas NDJSON, même si un analyseur indulgent pourrait l'accepter par accident. Cet outil le rejette, car l'accepter silencieusement signifierait qu'un lecteur en aval construit selon la vraie spécification ne serait pas d'accord avec ce que cet outil a écrit. Si vous avez besoin que chaque enregistrement soit indenté de façon lisible, utilisez le formateur JSON sur le résultat après être converti en tableau régulier ; les lignes NDJSON restent sans intention délibérée, car un saut de ligne à l'intérieur d'une valeur terminerait l'enregistrement.