Pack Camo

Data Studio

Przenoś tekst strukturalny między JSON, YAML, TOML, CSV i Markdown. Wszystko działa lokalnie — nic nie jest wysyłane.

Wejście
JSON · JSONL · YAML · TOML · CSV · TSV · Markdown
Wyjście
JSON · JSONL · YAML · TOML · CSV · TSV · HTML

Źródło

JSON · 320 B

Wynik

YAML

Jedno drzewo, sześć formatów

Każda konwersja parsuje źródło do jednego typowanego drzewa, a następnie zapisuje to drzewo w formacie docelowym. Dzięki temu konwersje w obie strony są uczciwe: liczba pozostaje liczbą, zagnieżdżenia przetrwają, a klucze obiektów zachowują kolejność, w jakiej zostały zapisane, zamiast być po cichu sortowane alfabetycznie. To także powód, dla którego dodanie formatu to jeden parser i jeden serializator, a nie nowy przypadek specjalny dla każdej pary.

W czym każdy format jest dobry

JSON
Domyślny format wymiany danych. Zachowuje zagnieżdżenia i typy w nienaruszonym stanie.
YAML
Przyjazny dla konfiguracji i komentarzy, choć komentarze nie są przenoszone.
TOML
Wymaga tabeli w korzeniu. Wartości null są pomijane — TOML ich nie zna.
CSV
Gotowy do arkusza kalkulacyjnego. Wymaga tablicy obiektów; zagnieżdżone wartości stają się komórkami JSON.
TSV
CSV z tabulatorami. Bezpieczniejszy, gdy dane są pełne przecinków.
JSONL
Jeden dokument na linię. Format używany przez potoki logów i zbiory danych dla LLM.

Trudne przypadki, obsłużone celowo

  • CSV nie ma typów. Komórka staje się liczbą tylko wtedy, gdy wypisanie tej liczby odtwarza dokładnie oryginalny tekst, więc 007 pozostaje ciągiem znaków, a 12 nie.
  • CSV nie ma zagnieżdżeń. Przy zapisie tabeli z zagnieżdżonych danych zagnieżdżone wartości trafiają do komórki jako JSON, zamiast wymyślać schemat spłaszczania, który później trzeba by odwracać.
  • TOML nie ma wartości null. Klucze o wartości null są pomijane, zamiast unieważniać cały dokument, a źródło, które w korzeniu nie jest obiektem, jest odrzucane od razu — TOML potrzebuje tam tabeli.
  • Komentarze to nie dane. Komentarze YAML i TOML żyją poza drzewem, więc nie przetrwają konwersji. Nic nie jest w stanie ich przenieść.

Najczęstsze pytania

Jak przekonwertować JSON na YAML albo YAML na JSON?
Wklej lub upuść dokument, potwierdź wykryty format wejściowy i wybierz format wyjściowy. Oba kierunki przechodzą przez to samo typowane drzewo, więc zagnieżdżenia, liczby i wartości logiczne przetrwają podróż.
Czy konwersja CSV na JSON zachowa wiodące zera?
Tak. Komórka jest zamieniana na liczbę tylko wtedy, gdy wypisanie tej liczby odtwarza dokładnie oryginalny tekst, więc identyfikator taki jak 007 pozostaje ciągiem "007", a 12 staje się liczbą 12.
Czy kolejność kluczy w moim JSON-ie jest zachowana?
Tak. Klucze obiektów zachowują kolejność z dokumentu, zamiast być sortowane alfabetycznie, dzięki czemu wynik nadal da się porównać z plikiem źródłowym.
Dlaczego moja konwersja do TOML się nie powiodła?
TOML potrzebuje tabeli na najwyższym poziomie, więc tablicy ani pojedynczej wartości nie da się w nim zapisać. TOML nie ma też wartości null: klucze o wartości null są pomijane, zamiast unieważniać cały dokument.
Czym jest JSONL i kiedy go używać?
JSONL — zwany też NDJSON — umieszcza w każdej linii jeden zwarty dokument JSON. Używają go potoki logów i zbiory danych do uczenia maszynowego, bo czytnik może przetwarzać go strumieniowo, rekord po rekordzie, zamiast najpierw parsować cały plik.