TOML na JSON
Cargo.toml Rusta, pyproject.toml Pythona, config.toml Hugo: TOML jest wszędzie we współczesnej konfiguracji, a mimo to wiele narzędzi wciąż mówi wyłącznie w JSON. Wklej tutaj TOML i odbierz czytelnie sformatowany JSON: sekcje [tabela] stają się zagnieżdżonymi obiektami, bloki [[tablice tabel]] tablicami obiektów, a daty przechodzą bez zmian jako łańcuchy znaków. Parser pokrywa codzienny rdzeń TOML; jego prawdziwe ograniczenia (wartości wielolinijkowe, tabele inline, klucze z kropkami) są uczciwie wypisane poniżej.
Jak przebiega konwersja
-
1
Wklej swój TOML
Umieść tekst w polu wejściowym i kliknij Konwertuj na JSON. Komentarze # zajmujące całą linię są pomijane automatycznie.
-
2
Tabele stają się obiektami
Nagłówek `[server.database]` zamienia się w zagnieżdżone obiekty JSON, po jednym poziomie na każdą nazwę oddzieloną kropką.
-
3
Tablice tabel stają się tablicami
Bloki `[[users]]` budują tablicę JSON z jednym obiektem na blok.
-
4
Wartości skalarne zachowują typ
Łańcuchy w cudzysłowach, proste dziesiętne liczby całkowite i zmiennoprzecinkowe oraz true/false stają się natywnymi typami JSON; daty pozostają łańcuchami, dokładnie tak, jak je zapisano.
-
5
Skopiuj JSON
Wynik jest sformatowany z wcięciem na 4 spacje, klucze zachowują pierwotną kolejność, całość jest gotowa do skopiowania.
Jak mapują się typy
| Wartość TOML | Wartość JSON | Przykład |
|---|---|---|
| Łańcuch (basic lub literal) | Łańcuch | "hello" → "hello" |
| Liczba całkowita (prosta dziesiętna) | Liczba | 42 → 42 |
| Liczba zmiennoprzecinkowa (prosta dziesiętna) | Liczba | 3.14 → 3.14 |
| Wartość logiczna | Wartość logiczna | true → true |
| Tablica (jedna linia) | Tablica | [1, 2, 3] → [1, 2, 3] |
| Tabela z kluczami | Obiekt | [server] + port = 8080 → "server": {"port": 8080} |
| Tablica tabel | Tablica obiektów | [[users]] + name = "alice" → "users": [{"name": "alice"}] |
| Data i czas | Łańcuch, jak zapisano | 2026-04-18T10:00:00Z → "2026-04-18T10:00:00Z" |
Wyjście jest zawsze formatowane z wcięciem na 4 spacje, więc tablice i obiekty zajmują kilka linii; powyższa tabela pokazuje wartości w jednej linii dla czytelności. Kolejność kluczy jest zachowywana dokładnie tak, jak występuje w Twoim TOML.
Pełny przykład
title = "My App"
[server]
host = "localhost"
port = 8080
[[users]]
name = "alice"
admin = true
konwertuje się na:
{
"title": "My App",
"server": {
"host": "localhost",
"port": 8080
},
"users": [
{
"name": "alice",
"admin": true
}
]
}
Obsługiwany TOML i prawdziwe ograniczenia
Obsługiwane: nagłówki [tabel] wraz z kropkowanymi nazwami sekcji, [[tablice tabel]], pary klucz = wartość w jednej linii, łańcuchy basic "..." z sekwencjami \n, \t i \", łańcuchy literal '...', proste dziesiętne liczby całkowite i zmiennoprzecinkowe, true/false, jednolinijkowe tablice (zagnieżdżanie dozwolone), komentarze # na całą linię oraz daty przekazywane jako łańcuchy.
Nieobsługiwane, wraz z tym, co zrobić zamiast tego:
- Łańcuchy wielolinijkowe (
"""lub''') i wielolinijkowe tablice zatrzymują parser błędem. Najpierw zapisz wartość w jednej linii. - Tabele inline nie są rozwijane:
point = { x = 1, y = 2 }wychodzi jako łańcuch"{ x = 1, y = 2 }", a nie obiekt. Przepisz ją jako osobną sekcję[point]. Linie zależności w Cargo.toml, jakserde = { version = "1.0" }, to klasyczny przypadek. - Klucze z kropkami po lewej stronie znaku równości pozostają jednym płaskim kluczem:
server.host = "a"daje klucz"server.host", bez zagnieżdżenia. Użyj zamiast tego nagłówka[server]. Kropkowane[nazwy.sekcji]w nagłówkach zagnieżdżają się natomiast poprawnie. - Komentarze za wartością nie są usuwane:
port = 8080 # mainstaje się łańcuchem"8080 # main". Trzymaj komentarze w osobnych liniach. - Formaty liczb wykraczające poza proste dziesiętne nie są rozpoznawane:
1_000,0xFF,5e2,+99,infinanwychodzą jako łańcuchy w cudzysłowach. Zapisz1000,255,500,99. - Sekwencje
\uXXXXw łańcuchach basic nie są dekodowane. Wklej zamiast nich prawdziwy znak.
Dla pełnego dokumentu TOML 1.0 użyj konwertera z wiersza poleceń, np. toml2json, albo wczytaj plik tomllib z Pythona i stamtąd zrzuć JSON.
Gdzie się to przydaje
- Szybki podgląd fragmentu TOML jako JSON podczas debugowania.
- Przekazanie prostych wartości konfiguracji linterom, skryptom lub narzędziom inwentaryzacyjnym, które przyjmują tylko JSON.
- Generowanie JSON-owych fixture do testów z notatek TOML, które łatwiej pisać ręcznie.
- Migracja małych, płaskich plików konfiguracji, jakimi jest wiele
config.tomlHugo.
Uwagi o podróży w obie strony
- Komentarze nigdy nie przeżywają: JSON w ogóle nie ma składni komentarzy.
- Daty pozostają łańcuchami; dalszy kod musi je z powrotem sparsować na obiekty dat.
- Duże liczby: liczby całkowite pozostają w tekście JSON wartościami 64-bitowymi, ale konsumenci w JavaScripcie tracą precyzję powyżej 2^53. Uważaj na nanosekundowe znaczniki czasu i numeryczne identyfikatory.
- Kolejność kluczy jest w tym konwerterze zachowywana jak w oryginale; inne narzędzia JSON mogą przesortować klucze przy ponownym zapisie dokumentu.
Kierunek odwrotny
JSON → TOML to trudniejsza podróż, bo JSON ma struktury (głębokie anonimowe zagnieżdżenie, null), których TOML nie ma albo obsługuje inaczej. Większość scenariuszy w obie strony wymaga ręcznych poprawek po stronie TOML.
Najczęściej zadawane pytania
Nie. JSON nie ma składni komentarzy, więc komentarze # na całą linię są po prostu pomijane. Jedno ostrzeżenie: komentarz za wartością nie jest usuwany, więc port = 8080 # main staje się łańcuchem “8080 # main”. Przed konwersją trzymaj komentarze w osobnych liniach.
Nie. Pokrywa codzienny rdzeń: tabele z kropkowanymi nazwami sekcji, tablice tabel, pary klucz = wartość w jednej linii, łańcuchy w cudzysłowach, proste liczby dziesiętne, wartości logiczne, jednolinijkowe tablice i komentarze na całą linię. Łańcuchy i tablice wielolinijkowe, tabele inline, klucze z kropkami oraz formaty liczb takie jak 1_000 czy 0xFF nie są obsługiwane. Dla dokumentów zgodnych z pełną specyfikacją użyj narzędzia CLI, np. toml2json albo tomllib z Pythona.
Typowe pliki konfiguracyjne konwertują się natychmiast. Konwersja działa na naszym serwerze, więc ogromne dokumenty ogranicza rozmiar żądania; dla TOML liczonego w megabajtach lepszy będzie konwerter z wiersza poleceń.
Tak, ten konwerter działa po stronie serwera: TOML wędruje na nasz serwer przez HTTPS, tam jest konwertowany i wraca w tej samej odpowiedzi. Treść nie jest potem przechowywana; zostaje tylko anonimowy licznik użyć. Nie wklejaj sekretów, takich jak hasła czy klucze API.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Podgląd Markdown
Pisz w Markdown i obserwuj, jak wyrenderowany HTML aktualizuje się na żywo. Składnia w stylu GitHub z tabelami, listami zadań, ogrodzonymi blokami kodu i automatycznymi odnośnikami.
Formater JavaScript
Formatuj JavaScript, JSX, TypeScript i JSON z konfigurowalnym wcięciem, stylem cudzysłowów, średnikami i przecinkami końcowymi.
Narzędzie odstępów w kodzie Python
Ujednolić wcięcia oraz proste odstępy przy przecinkach i operatorach. To lekka obróbka tekstu, a nie Black, Ruff ani parser Pythona.
Narzędzie jest dostępne w innych językach
- TOML เป็น JSON [TH]
- TOML a JSON [ES]
- TOMLからJSONへ [JA]
- TOML para JSON [PT]
- TOML till JSON [SV]
- TOML sang JSON [VI]
- من TOML إلى JSON [AR]
- TOML en JSON [FR]
- TOML zu JSON [DE]
- TOML ke JSON [ID]
- TOML to JSON [KO]
- TOML naar JSON [NL]
- TOML'dan JSON'a [TR]
- TOML 至 JSON [ZH]
- TOML to JSON [EN]
- TOML in JSON [IT]
- TOML в JSON [RU]