Do czego służy
JSON Lines (zwany też JSONL lub NDJSON) przechowuje jedną wartość JSON w każdym wierszu. To ulubiony format logów, eksportów danych, strumieniowych API, masowych importów do BigQuery i Elasticsearch oraz zbiorów danych do uczenia maszynowego, np. plików do fine-tuningu OpenAI, bo program może czytać lub dopisywać rekordy pojedynczo, bez wczytywania całego pliku.
Wiele narzędzi oczekuje jednak jednej tablicy JSON. Ten konwerter zamienia JSON Lines na sformatowaną tablicę JSON, a tablicę JSON z powrotem na JSON Lines z jednym zwięzłym rekordem w wierszu.
Jak używać
- Wybierz Kierunek: JSON Lines → JSON lub JSON → JSON Lines.
- Wklej dane, wgraj plik
.jsonl,.ndjsonlub.jsonalbo kliknij Przykład. - Dla wyjścia JSON wybierz wcięcie 2 lub 4 spacje albo Zwięźle, aby dostać jeden wiersz.
- Skopiuj lub pobierz wynik albo użyj Użyj jako wejścia, aby przekonwertować go z powrotem.
Jeśli któryś wiersz nie jest poprawnym JSON-em, błąd podaje numer wiersza i kolumnę, więc od razu trafisz do uszkodzonego rekordu — przydatne, gdy w pliku logów wśród tysięcy wpisów jeden jest ucięty.
Przykład
Te trzy wiersze JSON Lines:
{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}
stają się taką tablicą JSON:
[
{
"id": 1,
"event": "signup"
},
{
"id": 2,
"event": "login"
},
{
"id": 3,
"event": "logout"
}
]
W przeciwnym kierunku każdy element tablicy trafia do osobnego wiersza, bez spacji, a plik kończy się znakiem nowej linii.
Kiedy czego używać
Używaj JSON Lines, gdy rekordy powstają lub są przetwarzane pojedynczo: dopisywanie do logów, strumieniowanie wyników, dzielenie dużego zbioru danych między procesy albo przetwarzanie narzędziami wierszowymi, takimi jak grep, head i wc -l. Używaj tablicy JSON, gdy program potrzebuje całej kolekcji naraz, np. pliku konfiguracyjnego, danych testowych lub treści odpowiedzi endpointu REST.
FAQ
› Czym różnią się JSONL, NDJSON i JSON Lines?
To nazwy tego samego formatu: jedna kompletna wartość JSON w każdym wierszu, oddzielona znakiem nowej linii. JSON Lines (.jsonl) i newline-delimited JSON (.ndjson) różnią się tylko nazwą i rozszerzeniem.
› Czy puste wiersze są dozwolone?
Puste wiersze i końcowy znak nowej linii są pomijane przy odczycie. Obsługiwane są też końce linii z Windows (CRLF) i znacznik BOM UTF-8.
› Mój plik to sformatowany JSON, a jeden obiekt zajmuje kilka wierszy. Dlaczego jest błąd?
W JSON Lines każda wartość musi mieścić się w jednym wierszu. Jeśli wejście to zwykła tablica JSON, zmień kierunek na JSON → JSON Lines; jeśli to ciąg sformatowanych obiektów, najpierw umieść je w tablicy.
› Czy konwersja zmienia liczby lub kolejność kluczy?
Nie. Wartości i kolejność kluczy pozostają bez zmian; zmieniają się tylko białe znaki. Bardzo duże liczby całkowite poza bezpiecznym zakresem JavaScriptu (około 9 biliardów) mogą stracić precyzję, jak w każdym przeglądarkowym narzędziu JSON.