Konwerter TOML na JSON
Wklej TOML, a otrzymasz JSON natychmiast w przeglądarce. Obsługa Cargo.toml, pyproject.toml, dat i zagnieżdżonych tabel. 100% prywatnie, bez wysyłania plików.
Opcje · 2 spacje
Czym jest TOML i dlaczego warto konwertować na JSON?
TOML (Tom's Obvious, Minimal Language) to format pliku konfiguracyjnego stworzony przez Toma Prestona-Wernera, aby był jednoznaczny, łatwy do czytania przez ludzi i trywialnie odwzorowywalny na tablicę mieszającą. Stał się domyślnym formatem konfiguracji dla ekosystemu Rust (Cargo.toml), nowoczesnego pakowania w Pythonie (pyproject.toml, ustandaryzowany w PEP 518 i PEP 621) oraz narzędzi takich jak Hugo, Netlify, Poetry i Foundry. JSON z kolei jest uniwersalnym formatem wymiany danych między maszynami — parsuje go każdy język, posługuje się nim każde API. Konwersja TOML na JSON jest zatem częstym zadaniem: piszesz konfigurację w czytelnym TOML, a następnie konwertujesz ją na JSON, aby zasilić program, przejrzeć ją za pomocą narzędzi JSON lub porównać w potoku.
To narzędzie ma kilka cech wyróżniających, które mają znaczenie dla poprawności:
**1. Wierność daty i czasu.** TOML ma pełnoprawne typy daty i czasu — data-czas z przesunięciem, data-czas lokalny, data lokalna i czas lokalny — których JSON w ogóle nie ma. Naiwne konwertery spłaszczają je wszystkie do znaczników czasu ISO, więc data lokalna jak 1979-05-27 staje się 1979-05-27T00:00:00Z, po cichu wymyślając czas i strefę czasową. To narzędzie zachowuje dokładny rodzaj TOML: daty lokalne pozostają datami kalendarzowymi, czasy lokalne pozostają czasami, a tylko daty-czasy z przesunięciem niosą strefę czasową. Dzięki temu Twoje dane są uczciwe, a konwersje w obie strony bezstratne.
**2. Pełna obsługa TOML 1.0.0.** Zagnieżdżone tabele, klucze z kropkami, tabele wbudowane i tablice tabel ([[section]]) są poprawnie parsowane zgodnie ze specyfikacją TOML 1.0.0 przy użyciu biblioteki smol-toml bez zależności. Prawdziwe pliki Cargo.toml i pyproject.toml z mieszanymi tabelami wbudowanymi i standardowymi konwertują się dokładnie tak, jak wymaga specyfikacja.
**3. Uczciwa obsługa dużych liczb całkowitych.** Liczby całkowite TOML są 64-bitowe, ale JavaScript w przeglądarce może dokładnie przechować liczby całkowite tylko do 2^53 - 1. Zamiast po cichu uszkodzić dużą wartość lub ulec awarii, to narzędzie konwertuje ją na najbliższą liczbę JSON i ostrzega Cię, dzięki czemu możesz zamiast tego przechować wartość jako łańcuch. Ta uczciwość wobec fundamentalnego ograniczenia przeglądarki to coś, co większość konwerterów pomija.
**4. 100% prywatności w przeglądarce.** Twój TOML — który może zawierać tokeny rejestru, wewnętrzne źródła pakietów lub sekrety wdrożeniowe — nigdy nie opuszcza przeglądarki. Bez wysyłania, bez serwera, bez logowania. Możesz to potwierdzić w karcie Sieć swojej przeglądarki.
Potrzebujesz odwrotnej konwersji? Skorzystaj z konwertera JSON na TOML. Konwertujesz między innymi formatami konfiguracji? Wypróbuj konwerter JSON na YAML i konwerter YAML na JSON albo najpierw sprawdź i sformatuj swój wynik JSON za pomocą formatera JSON. TOML, JSON i YAML mają swoje miejsce: TOML do konfiguracji aplikacji edytowanej przez ludzi, JSON do wymiany między maszynami, a YAML do głęboko zagnieżdżonych manifestów infrastruktury. Ten konwerter pozwala przechodzić między pierwszymi dwoma bez ani jednej linii kodu.
// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';
const toml = `
[package]
name = "my-app"
version = "1.0.0"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;
const data = parse(toml);
const json = JSON.stringify(data, null, 2);
console.log(json);
// {
// "package": { "name": "my-app", "version": "1.0.0" },
// "dependencies": {
// "serde": { "version": "1.0", "features": ["derive"] }
// }
// } Kluczowe funkcje
Konwersja na żywo
Wynik JSON aktualizuje się natychmiast podczas pisania lub wklejania TOML — bez przycisku Konwertuj. Duże dane (>200 KB) automatycznie przełączają się w tryb ręczny, aby przeglądarka pozostała responsywna.
Wierność daty i czasu
Daty-czasy z przesunięciem, daty-czasy lokalne, daty lokalne i czasy lokalne TOML są konwertowane na łańcuchy JSON zachowujące oryginalny rodzaj — bez zmyślonych znaczników czasu o północy, więc konwersje w obie strony pozostają bezstratne.
Pełna obsługa TOML 1.0.0
Zagnieżdżone tabele, klucze z kropkami, tabele wbudowane i tablice tabel ([[section]]) są poprawnie parsowane przez silnik smol-toml bez zależności, zgodnie ze specyfikacją TOML 1.0.0.
Gotowe na Cargo.toml i pyproject.toml
Zoptymalizowane pod najczęstsze rzeczywiste pliki TOML — manifesty Rust i konfiguracje pakowania Pythona — w tym tabele wbudowane i tablice tabel. Wczytaj przykład, aby zobaczyć dokładną strukturę JSON.
Uczciwe ostrzeżenia o dużych liczbach całkowitych
Liczby całkowite spoza bezpiecznego zakresu JavaScript (2^53) nie mogą być dokładnie reprezentowane w JSON — narzędzie konwertuje je na najbliższą liczbę i ostrzega Cię, zamiast po cichu uszkodzić wartość.
100% prywatności w przeglądarce
Całe parsowanie odbywa się lokalnie w Twojej przeglądarce. Twój TOML — w tym tokeny rejestru, prywatne źródła pakietów i sekrety wdrożeniowe — nigdy nie jest wysyłany, przechowywany ani logowany.
Przykłady
Cargo.toml (Rust)
[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
criterion = "0.5"
[[bin]]
name = "my-app"
path = "src/main.rs" Konwertuj manifest Cargo.toml języka Rust na JSON — przydatne dla narzędzi, pulpitów zależności lub przekazywania metadanych cargo do skryptów oczekujących JSON.
pyproject.toml (Python)
[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "my-package" version = "0.3.1" requires-python = ">=3.10" dependencies = [ "requests>=2.31", "pydantic>=2.0" ] [project.optional-dependencies] dev = ["pytest>=8.0", "ruff>=0.4"] [tool.ruff] line-length = 100
Konwertuj plik pyproject.toml zgodny z PEP 621 na JSON, aby programowo przeglądać metadane projektu, zależności i konfigurację narzędzi.
netlify.toml
[build] command = "npm run build" publish = "dist" [build.environment] NODE_VERSION = "20" [[redirects]] from = "/old-path" to = "/new-path" status = 301 force = true [[headers]] for = "/*" [headers.values] X-Frame-Options = "DENY"
Konwertuj konfigurację kompilacji Netlify na JSON, aby audytować przekierowania i nagłówki lub wygenerować równoważną konfigurację dla innej platformy.
config.toml witryny Hugo
baseURL = "https://example.org" languageCode = "en-us" title = "My Hugo Site" theme = "ananke" [params] description = "A static site built with Hugo" mainSections = ["posts", "docs"] [[menu.main]] name = "Blog" url = "/posts/" weight = 1 [[menu.main]] name = "About" url = "/about/" weight = 2
Konwertuj plik config.toml witryny Hugo na JSON, aby migrować ustawienia, porównywać konfigurację lub zasilać interfejs konfiguracji.
rustfmt.toml
edition = "2021" max_width = 100 hard_tabs = false tab_spaces = 4 newline_style = "Unix" use_small_heuristics = "Default" reorder_imports = true reorder_modules = true
Konwertuj płaski plik rustfmt.toml na JSON — dobry przykład, jak pary klucz-wartość najwyższego poziomu (bez tabel) odwzorowują się bezpośrednio na obiekt JSON.
Konfiguracja aplikacji z datami i tablicami tabel
title = "Deployment Log" last_deployed = 1979-05-27T07:32:00Z release_date = 1979-05-27 maintenance_window = 02:00:00 [[servers]] name = "alpha" ip = "10.0.0.1" ports = [8001, 8002] [[servers]] name = "beta" ip = "10.0.0.2" ports = [9001]
Pokazuje, jak natywne typy daty i czasu TOML (data-czas z przesunięciem, data lokalna, czas lokalny) oraz tablice tabel konwertują się czysto na łańcuchy i tablice JSON.
Jak używać
- 1
Wklej swój TOML
Wpisz lub wklej swój TOML do pola wejściowego powyżej. Możesz też kliknąć „Wczytaj przykład”, aby wypróbować prawdziwy plik Cargo.toml, pyproject.toml lub konfigurację wdrożenia.
- 2
Zobacz wynik JSON na żywo
JSON pojawia się natychmiast w panelu wyjściowym. Dostosuj opcję Wcięcie (2 lub 4 spacje) do docelowego formatu. Daty, tabele i tablice tabel są obsługiwane automatycznie.
- 3
Kopiuj lub pobierz
Kliknij Kopiuj, aby przenieść JSON do schowka, lub Pobierz, aby zapisać go jako plik .json gotowy dla Twojego programu, API lub narzędzi.
Typowe pułapki TOML
Wartości łańcuchowe bez cudzysłowów
W TOML wartości łańcuchowe muszą być w cudzysłowach. Samo słowo po prawej stronie znaku równości jest prawidłowe tylko dla wartości logicznych (true/false), liczb, dat lub jako część tablicy. Umieszczaj łańcuchy w cudzysłowach podwójnych lub pojedynczych.
name = my-app
name = "my-app"
Zduplikowane klucze
TOML zabrania definiowania tego samego klucza dwukrotnie w obrębie tej samej tabeli oraz ponownego definiowania już zdefiniowanej tabeli. To częsty błąd przy scalaniu fragmentów konfiguracji. Każdy klucz i każda tabela muszą być unikalne.
name = "a" name = "b"
name = "a" alt_name = "b"
Nieprawidłowy format daty i czasu
Daty i czasy TOML są zgodne z RFC 3339. Data wymaga pełnego 4-cyfrowego roku, 2-cyfrowego miesiąca i 2-cyfrowego dnia; data-czas wymaga separatora T (lub spacji). Zniekształcone daty nie zostaną sparsowane.
released = 2026-7-2
released = 2026-07-02
Brak nawiasu zamykającego
Tablice, tabele wbudowane i nagłówki tabel muszą być zamknięte. Niezamknięty nawias [ lub { powoduje błąd parsowania wskazujący wiersz i kolumnę, w których wykryto problem.
ports = [8001, 8002
ports = [8001, 8002]
Liczba całkowita spoza bezpiecznego zakresu
Liczby całkowite TOML są 64-bitowe, ale liczby JSON w przeglądarce są ograniczone do 2^53 - 1. Wartości spoza tego zakresu są zaokrąglane podczas konwersji i wyświetlane jest ostrzeżenie. Przechowuj bardzo duże liczby całkowite jako łańcuchy w cudzysłowach, aby zachować ich dokładność.
snowflake = 1420070400000000000
snowflake = "1420070400000000000"
Ponowne definiowanie tabeli
Gdy tabela taka jak [servers] zostanie zdefiniowana, nie można otworzyć jej ponownie z tym samym nagłówkiem. Aby mieć wiele wpisów, użyj zamiast tego tablicy tabel ([[servers]]), która staje się tablicą obiektów JSON.
[servers] name = "a" [servers] name = "b"
[[servers]] name = "a" [[servers]] name = "b"
Typowe zastosowania
- Metadane Cargo w Rust
- Konwertuj Cargo.toml na JSON, aby budować pulpity zależności, audytować wersje i cechy skrzyń (crate) lub przekazywać dane manifestu do skryptów i CI oczekujących JSON zamiast TOML.
- Konfiguracja projektu Python
- Konwertuj pyproject.toml na JSON, aby przeglądać metadane projektu PEP 621, wyodrębniać listy zależności lub zasilać narzędzia programowo odczytujące konfigurację pakowania.
- Inspekcja konfiguracji wdrożenia
- Konwertuj netlify.toml, foundry.toml lub inne konfiguracje platform na JSON, aby audytować przekierowania, nagłówki i ustawienia kompilacji lub wygenerować równoważną konfigurację dla innej platformy.
- Migracja formatu konfiguracji
- Konwertuj konfigurację aplikacji z TOML na JSON przy przejściu na system preferujący JSON lub jako krok pośredni przed dalszym przekształceniem za pomocą narzędzi JSON, takich jak jq.
- Ustawienia witryny statycznej
- Konwertuj plik config.toml witryny Hugo na JSON, aby migrować ustawienia witryny, porównywać konfigurację między środowiskami lub zbudować interfejs ustawień oparty na JSON.
- Dane wejściowe API i skryptów
- Zamień napisany przez człowieka TOML na JSON, który REST API, funkcja serverless lub skrypt automatyzacji może bezpośrednio wykorzystać, łącząc czytelną konfigurację z danymi wejściowymi dla maszyn.
Szczegóły techniczne
- Parsowanie TOML 1.0.0 przez smol-toml
- TOML jest parsowany za pomocą biblioteki smol-toml — parsera bez zależności, w pełni zgodnego z TOML 1.0.0. Poprawnie obsługuje zagnieżdżone tabele, klucze z kropkami, tabele wbudowane, tablice tabel, łańcuchy wieloliniowe i wszystkie cztery typy daty i czasu, a błędy parsowania zgłasza z pozycją wiersza i kolumny.
- Bezstratna obsługa daty i czasu oraz bezpieczna obsługa liczb całkowitych
- Daty i czasy TOML są serializowane do łańcuchów JSON zachowujących ich dokładny rodzaj (data-czas z przesunięciem, data-czas lokalny, data lokalna, czas lokalny). Liczby całkowite spoza bezpiecznego zakresu JavaScript (2^53 - 1) są podczas parsowania promowane do BigInt, a następnie konwertowane na najbliższą liczbę JSON z ostrzeżeniem o precyzji, więc prawidłowy TOML nigdy nie odmawia konwersji.
- 100% w przeglądarce — bez wysyłania, bez serwera
- Całe przetwarzanie odbywa się w silniku JavaScript Twojej przeglądarki. Żadne dane nie są nigdzie przesyłane. Dane większe niż 200 KB przełączają się z trybu na żywo na tryb ręczny (jawne kliknięcie Konwertuj), aby interfejs pozostał responsywny.
Najlepsze praktyki
- Przechowuj bardzo duże liczby całkowite jako łańcuchy
- Jeśli Twój TOML ma liczby całkowite powyżej 2^53 - 1 (identyfikatory Snowflake, znaczniki czasu w nanosekundach, duże liczniki), przed konwersją umieść je w cudzysłowach jako łańcuchy. Liczby JSON w przeglądarce nie mogą przechować ich dokładnie, a narzędzie ostrzeże Cię, gdy będzie musiało zaokrąglić.
- Preferuj wcięcie 2-spacjowe dla wyniku JSON
- Wcięcie dwuspacjowe to najczęściej stosowana konwencja dla JSON i daje czysty, czytelny wynik, który dobrze współpracuje z większością formaterów i narzędzi do porównywania. Wcięcie czterospacjowe zostaw na sytuacje, gdy wymaga go przewodnik stylu.
- Sprawdź poprawność wyniku JSON przed użyciem
- Po konwersji, jeśli zamierzasz ręcznie edytować JSON lub przekazać go w miejsce o rygorystycznych wymaganiach, przepuść go przez nasz formater JSON, aby potwierdzić, że jest prawidłowy i spójnie sformatowany.
- Przechowuj komentarze TOML osobno
- JSON nie ma składni komentarzy, więc komentarze # z TOML są usuwane podczas konwersji. Jeśli komentarze stanowią ważną dokumentację, przechowuj oryginalny TOML w systemie kontroli wersji obok wygenerowanego JSON.
- Używaj tablic tabel dla powtarzających się sekcji
- Gdy masz wiele podobnych sekcji (serwery, przekierowania, pliki binarne), zapisuj je jako tablice tabel ([[section]]) zamiast powtarzać [section]. Konwertują się one na czystą tablicę obiektów JSON, zamiast powodować błąd zduplikowanej tabeli.
Często zadawane pytania
Jak przekonwertować TOML na JSON online?
Czym jest TOML i dlaczego warto konwertować go na JSON?
Jak daty i czasy TOML są reprezentowane w JSON?
Czy to narzędzie obsługuje Cargo.toml i pyproject.toml?
Jak konwertowane są tabele TOML i tablice tabel?
Co dzieje się z bardzo dużymi liczbami całkowitymi podczas konwersji TOML na JSON?
Czy moje dane TOML są wysyłane na jakikolwiek serwer?
Czy mogę przekonwertować JSON z powrotem na TOML?
Jak przekonwertować TOML na JSON w wierszu poleceń?
Jak przekonwertować TOML na JSON w Pythonie, Rust lub Node.js?
Czy konwerter zachowuje kolejność kluczy, a co z komentarzami?
Czy istnieje limit rozmiaru pliku dla danych wejściowych TOML?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Koder i dekoder Base64
Kodowanie i formatowanie
Zakoduj i zdekoduj Base64 online za darmo. Konwersja w czasie rzeczywistym z pełną obsługą UTF-8 i emoji. 100% w przeglądarce, bez rejestracji.
Konwerter Base64 na obraz
Kodowanie i formatowanie
Zdekoduj ciąg Base64 lub data URI z powrotem na obraz w przeglądarce. Podejrzyj, odczytaj wymiary i MIME, a potem pobierz jako PNG, JPG, GIF, SVG. Bez przesyłania.
Konwerter CSV na JSON
Kodowanie i formatowanie
Konwertuj CSV na JSON w przeglądarce. RFC 4180, wnioskowanie typów, nagłówek, big-int safe. 100% prywatnie, bez wysyłki.
Konwerter .env na JSON
Kodowanie i formatowanie
Wklej plik .env i od razu otrzymaj JSON. Hasła, klucze API i tokeny nigdy nie opuszczają przeglądarki — 100% prywatnie, bez wysyłania, parser dotenv.
Darmowy dekoder encji HTML — unescape HTML
Kodowanie i formatowanie
Dekoduj encje HTML i unescape HTML online — za darmo, bez rejestracji, w 100% w przeglądarce. Zamienia odwołania nazwane, dziesiętne & szesnastkowe z powrotem na znaki; nic nie jest wysyłane.
Darmowy koder encji HTML — escape HTML
Kodowanie i formatowanie
Koduj encje HTML i znaki specjalne (< > & " ') online — za darmo, bez rejestracji, w 100% w przeglądarce. Wynik nazwany, dziesiętny lub szesnastkowy; nic nie jest wysyłane.