Konwerter JSON ↔ YAML ↔ TOML
Konwertuj między JSON, YAML i TOML z automatycznym rozpoznaniem formatu
O tym narzędziu
Konwertuj między JSON-em, YAML-em i TOML-em w dowolną stronę. Format źródłowy rozpoznawany jest automatycznie w trakcie wklejania — nawiasy sugerują JSON, dwukropki po kluczach YAML, [tabele] TOML — z możliwością ręcznego wskazania przy niejednoznacznym wejściu. Konwersja przechodzi przez prawdziwe parsowanie, więc wynik jest z definicji poprawny, a nie efektem przekształcania tekstu wiersz po wierszu.
Każdy format ma realne mocne strony: JSON do API i wymiany maszynowej, YAML do konfiguracji edytowanej przez ludzi (Kubernetes, potoki CI), TOML do dobrze otypowanych plików konfiguracyjnych (Cargo, pyproject). Ręczne przenoszenie danych między nimi zaprasza do błędów z wcięciami i cudzysłowami, które ta konwersja eliminuje.
Konwerter uczciwie mówi o ograniczeniach formatów: TOML nie ma tablic na najwyższym poziomie ani wartości null, więc przy konwersji takich dokumentów wyjaśnia dlaczego, zamiast po cichu gubić dane.
Często zadawane pytania
- Czy komentarze przetrwają konwersję?
- Nie — JSON nie ma składni komentarzy, a konwersja przechodzi przez sparsowaną strukturę danych, która komentarzy nie niesie. Zamiana YAML → JSON → YAML gubi je bezpowrotnie; gdy komentarze są ważne, zachowaj oryginalny plik.
- Dlaczego moje „no” w YAML-u zamieniło się w false?
- YAML 1.1 traktuje yes/no/on/off jako wartości logiczne, przez co kod kraju NO słynnie staje się false. Tutejszy parser trzyma się YAML-a 1.2 (tylko true/false), ale pliki pisane pod starsze parsery wciąż potrafią zaskoczyć. Napisy wyglądające jak wartości logiczne, liczby albo daty bierz w cudzysłów.
- Dlaczego mój JSON nie konwertuje się do TOML-a?
- TOML wymaga tabeli (obiektu) na najwyższym poziomie — tablica ani goły skalar nie mogą być dokumentem TOML — i nie zna wartości null. Przebuduj dane (zawiń tablicę pod klucz, usuń nulle albo daj im wartości domyślne), a konwersja się powiedzie.
- Czy YAML jest nadzbiorem JSON-a?
- Praktycznie tak — YAML 1.2 parsuje niemal wszystkie dokumenty JSON, dlatego wklejenie JSON-a do konfiguracji YAML zwykle działa. Odwrotnie już nie: kotwice, wieloliniowe skalary i tagi YAML-a nie mają odpowiednika w JSON-ie i przy konwersji zostają rozwinięte albo zamienione na napisy.