Konwerter JSON na TOML
Wklej JSON, a otrzymasz TOML natychmiast w przeglądarce. Bezpieczna obsługa null, kontrola tabeli głównej, gotowe na Cargo.toml. 100% prywatnie, bez wysyłki.
Opcje · 2 spacje
Czym jest TOML i dlaczego warto konwertować z JSON?
TOML (Tom's Obvious, Minimal Language) to format pliku konfiguracyjnego zbudowany tak, aby był jednoznaczny oraz łatwy do czytania i edytowania przez ludzi. To standardowy format konfiguracji dla ekosystemu Rust (Cargo.toml), nowoczesnego pakowania w Pythonie (pyproject.toml) oraz narzędzi takich jak Hugo, Netlify, Poetry i Foundry. JSON jest uniwersalnym formatem maszynowym, który wytwarzają narzędzia i API. Konwersja JSON na TOML jest częsta, gdy masz ustrukturyzowane dane w JSON, ale jako miejsce docelowe potrzebujesz edytowalnej przez człowieka konfiguracji TOML — generując plik Cargo.toml lub pyproject.toml albo przekształcając ustawienia aplikacji w JSON na czytelny plik konfiguracyjny.
TOML jest bardziej ustrukturyzowany niż JSON, a to narzędzie zamienia ten rygor we wskazówki, a nie w zagadkowe błędy:
**1. Wymuszanie tabeli najwyższego poziomu.** Każdy dokument TOML jest w korzeniu tabelą — goła tablica lub skalar nie są prawidłowym TOML. Zamiast wytwarzać uszkodzony wynik dla wejścia z tablicą na najwyższym poziomie, to narzędzie wykrywa to i mówi dokładnie, jak opakować dane pod kluczem, dzięki czemu zawsze otrzymujesz prawidłowy TOML lub jasne wyjaśnienie.
**2. Bezpieczna, przejrzysta obsługa null.** JSON ma null; TOML nie ma. Większość konwerterów albo ulega awarii, albo po cichu odrzuca dane. To narzędzie jest jednoznaczne: klucze obiektów z wartościami null są usuwane, a usunięte klucze wymienione w ostrzeżeniu, natomiast null wewnątrz tablicy — który nie ma prawidłowej reprezentacji w TOML — powoduje precyzyjny błąd wskazujący ścieżkę. Brakujące dane nigdy Cię nie zaskoczą.
**3. Idiomatyczny wynik TOML.** Zagnieżdżone obiekty stają się [tabelami], głęboko zagnieżdżone obiekty stają się tabelami z kropkami ([tool.ruff]), a tablice obiektów stają się tablicami tabel ([[section]]) — kształt, jakiego używają prawdziwe pliki Cargo.toml i pyproject.toml. Konwersję napędza biblioteka smol-toml bez zależności, zgodna z TOML 1.0.0.
**4. 100% prywatności w przeglądarce.** Twój JSON — który może zawierać dane logowania, tokeny lub szczegóły wewnętrznych usług — nigdy nie opuszcza przeglądarki. Bez wysyłania, bez serwera, bez logowania. Potwierdź to w karcie Sieć swojej przeglądarki.
Potrzebujesz odwrotnej konwersji? Skorzystaj z konwertera TOML na JSON. Pracujesz z innymi formatami konfiguracji? Wypróbuj konwerter JSON na YAML i konwerter YAML na JSON albo najpierw uporządkuj swoje dane wejściowe JSON za pomocą formatera JSON. Każdy format ma swoją niszę: JSON do wymiany między maszynami, TOML do konfiguracji aplikacji i narzędzi edytowanej przez ludzi, a YAML do głęboko zagnieżdżonych manifestów infrastruktury. Ten konwerter pozwala przejść z JSON na TOML bez pisania kodu.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" Kluczowe funkcje
Konwersja na żywo
Wynik TOML aktualizuje się natychmiast podczas pisania lub wklejania JSON — bez przycisku Konwertuj. Duże dane (>200 KB) automatycznie przełączają się w tryb ręczny, aby przeglądarka pozostała responsywna.
Wskazówki dotyczące tabeli najwyższego poziomu
Dokumenty TOML muszą być tabelą w korzeniu. Jeśli najwyższy poziom Twojego JSON to tablica lub skalar, narzędzie mówi dokładnie, jak opakować go pod kluczem — bez uszkodzonego wyniku, bez zgadywania.
Bezpieczna obsługa null
TOML nie ma null. Klucze obiektów z wartościami null są usuwane i wymieniane w ostrzeżeniu; null wewnątrz tablicy wywołuje precyzyjny błąd wskazujący ścieżkę. Zawsze wiesz, co stało się z Twoimi danymi.
Idiomatyczny wynik TOML
Zagnieżdżone obiekty stają się [tabelami], głęboko zagnieżdżone obiekty stają się tabelami z kropkami ([tool.ruff]), a tablice obiektów stają się tablicami tabel ([[section]]) — kształt, jakiego używają prawdziwe pliki Cargo.toml i pyproject.toml.
Rozróżnianie liczb zmiennoprzecinkowych i całkowitych
TOML oddziela liczby całkowite od zmiennoprzecinkowych, więc liczba zmiennoprzecinkowa jak 1.0 jest zapisywana jako liczba całkowita 1. Narzędzie ostrzega Cię, gdy ta konwersja zmienia typ wartości, dzięki czemu niespodzianki przy konwersji w obie strony są widoczne.
100% prywatności w przeglądarce
Całe parsowanie odbywa się lokalnie w Twojej przeglądarce. Twój JSON — w tym dane logowania, tokeny i szczegóły wewnętrznych usług — nigdy nie jest wysyłany, przechowywany ani logowany.
Przykłady
Źródło Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} Wygeneruj plik Cargo.toml języka Rust z JSON — zagnieżdżone obiekty stają się [tabelami], a obiekty wbudowane stają się tabelami wbudowanymi, dokładnie tak, jak oczekuje tego Cargo.
Źródło pyproject.toml
{
"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"]
}
} Wygeneruj plik pyproject.toml zgodny z PEP 621 z metadanych projektu w JSON — przydatne, gdy narzędzie lub API wytwarza JSON, którego potrzebujesz w postaci TOML.
Ustawienia aplikacji
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} Konwertuj płaski obiekt ustawień aplikacji na TOML — skalary najwyższego poziomu pozostają na górze, a zagnieżdżony obiekt database staje się tabelą [database].
Serwery (tablica tabel)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} Tablica obiektów staje się w TOML tablicą tabel ([[servers]]) — idiomatyczny sposób wyrażania powtarzających się sekcji.
Źródło konfiguracji Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} Zamień konfigurację wdrożenia w JSON na netlify.toml, z zagnieżdżonymi tabelami [build] i [build.environment] oraz tablicą tabel [[redirects]].
Konfiguracja o strukturze z kropkami
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} Głęboko zagnieżdżone obiekty JSON stają się tabelami TOML z kropkami, takimi jak [tool.ruff] i [tool.black] — kształt, jakiego oczekują narzędzia pyproject.toml.
Jak używać
- 1
Wklej swój JSON
Wpisz lub wklej swój JSON do pola wejściowego powyżej. Możesz też kliknąć „Wczytaj przykład”, aby wypróbować źródło Cargo.toml, źródło pyproject.toml lub obiekt ustawień aplikacji.
- 2
Zobacz wynik TOML na żywo
TOML pojawia się natychmiast w panelu wyjściowym. Jeśli Twój JSON ma tablicę na najwyższym poziomie lub wartości null, narzędzie wyjaśnia dokładnie, co zrobić, zamiast tworzyć uszkodzony wynik.
- 3
Kopiuj lub pobierz
Kliknij Kopiuj, aby przenieść TOML do schowka, lub Pobierz, aby zapisać go jako plik .toml gotowy dla Cargo, Poetry, Hugo, Netlify lub dowolnego narzędzia odczytującego TOML.
Typowe pułapki konwersji JSON na TOML
Tablica lub skalar na najwyższym poziomie
Dokumenty TOML muszą być tabelą (obiektem) w korzeniu. Tablica JSON lub pojedyncza wartość nie może być dokumentem TOML. Opakuj ją pod kluczem, aby ją przekonwertować.
[1, 2, 3]
{ "items": [1, 2, 3] } Wartości null w obiektach
TOML nie ma typu null, więc klucz obiektu z wartością null jest usuwany podczas konwersji. Narzędzie ostrzega Cię, które klucze zostały usunięte. Jeśli musisz zachować klucz, nadaj mu prawdziwą wartość lub pusty łańcuch.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } Null wewnątrz tablicy
Tablica TOML nie może zawierać null ani luki, więc JSON jak [1, null, 3] nie ma prawidłowego wyniku TOML. Usuń null lub zastąp go prawdziwą wartością przed konwersją.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } Nieprawidłowa składnia JSON
Dane wejściowe muszą najpierw być prawidłowym JSON. Końcowe przecinki, pojedyncze cudzysłowy i klucze bez cudzysłowów to częste błędy przeniesione z JavaScript, które nie są prawidłowym JSON i trzeba je poprawić przed konwersją.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } Liczba zmiennoprzecinkowa z zerową częścią ułamkową staje się całkowitą
TOML zapisuje liczbę zmiennoprzecinkową, której część ułamkowa jest zerowa (1.0), jako liczbę całkowitą 1, zmieniając jej typ przy konwersji w obie strony. Narzędzie Cię ostrzega. Jeśli wartość jest koncepcyjnie liczbą całkowitą, to w porządku; jeśli musi pozostać liczbą zmiennoprzecinkową, TOML nie może tego zachować dla liczb całkowitych.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 Mieszanie obiektu i tablicy pod tym samym kluczem
Klucz JSON musi być konsekwentnie obiektem lub tablicą, aby odwzorować się na tabelę lub tablicę tabel. Niespójne kształty w zbiorze danych mogą wytworzyć mylący TOML — najpierw znormalizuj strukturę.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } Typowe zastosowania
- Generowanie Cargo.toml
- Zamień ustrukturyzowany JSON — z narzędzia szkieletowego, API lub skryptu — na prawidłowy plik Cargo.toml języka Rust, z automatycznie tworzonymi zagnieżdżonymi tabelami [dependencies] i tabelami wbudowanymi.
- Generowanie pyproject.toml
- Konwertuj metadane projektu w JSON na plik pyproject.toml zgodny z PEP 621, w tym tabele z kropkami [tool.*], aby narzędzia wytwarzające JSON mogły produkować konfigurację pakowania Pythona.
- Konfiguracja edytowalna przez człowieka z JSON
- Przekształć ustawienia aplikacji w JSON na czytelny plik konfiguracyjny TOML, który ludzie mogą wygodnie edytować, z komentarzami dodanymi później ręcznie.
- Generowanie konfiguracji wdrożenia
- Twórz pliki netlify.toml, foundry.toml lub podobne konfiguracje platform z JSON, zamieniając zagnieżdżone obiekty i tablice obiektów na tabele i tablice tabel, których oczekują te narzędzia.
- Migracja formatu konfiguracji
- Przenieś konfigurację z systemu opartego na JSON do systemu opartego na TOML, używając tego konwertera jako pomostu oraz ostrzeżeń o null i najwyższym poziomie, aby wychwycić wszystko, co się nie odwzoruje.
- Prototypowanie struktury TOML
- Naszkicuj konfigurację jako JSON — format, który większość programistów pisze płynnie — a następnie przekonwertuj na TOML, aby zobaczyć idiomatyczny układ tabel i tablic tabel przed zatwierdzeniem go w repozytorium.
Szczegóły techniczne
- Parsowanie JSON według RFC 8259
- Dane wejściowe JSON są parsowane natywnym JSON.parse() przeglądarki, w pełni zgodnym z RFC 8259. Przed serializacją narzędzie sprawdza, czy wartość najwyższego poziomu jest obiektem, i skanuje wartości null, aby móc ostrzec o usuniętych kluczach obiektów lub odrzucić null wewnątrz tablicy z dokładną ścieżką.
- Wynik TOML 1.0.0 przez smol-toml
- TOML jest generowany za pomocą biblioteki smol-toml — serializatora bez zależności, w pełni zgodnego z TOML 1.0.0. Zagnieżdżone obiekty stają się tabelami, głęboko zagnieżdżone obiekty stają się tabelami z kropkami, a tablice obiektów stają się tablicami tabel. Liczby zmiennoprzecinkowe z zerową częścią ułamkową są zapisywane jako liczby całkowite zgodnie z regułami TOML, z ostrzeżeniem.
- 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
- Opakowuj tablice najwyższego poziomu pod kluczem
- Jeśli Twoje dane są naturalnie tablicą JSON, przed konwersją opakuj je w obiekt z opisowym kluczem ({ "items": [...] }). Dokumenty TOML muszą być tabelą w korzeniu, a klucz nadaje Twojej tablicy jasną nazwę w wyniku.
- Zdecyduj, co mają oznaczać wartości null
- Przed konwersją zdecyduj, czy pole null ma zniknąć (usunięcie klucza), czy nieść wartość. TOML usunie wartości null w obiektach i odrzuci wartości null w tablicach, więc rozwiązanie ich najpierw w JSON daje przewidywalny, kompletny wynik.
- Używaj zagnieżdżonych obiektów do grupowania
- Grupuj powiązane ustawienia w zagnieżdżone obiekty w swoim JSON — stają się one czystymi [tabelami] i tabelami z kropkami w TOML, co jest znacznie czytelniejsze niż płaska lista kluczy i odpowiada temu, jak zorganizowane są konfiguracje Cargo i pyproject.
- Najpierw sprawdź poprawność swojego JSON
- Jeśli Twój JSON jest pisany ręcznie lub pochodzi z niepewnego źródła, sprawdź go naszym formaterem JSON, aby wychwycić końcowe przecinki i błędy w cudzysłowach przed konwersją na TOML.
- Dodaj komentarze po konwersji
- JSON nie ma komentarzy, więc żaden się nie przeniesie. Ponieważ TOML obsługuje komentarze #, dodaj dokumentację do wygenerowanego TOML ręcznie — to jeden z głównych powodów, dla których w ogóle przenosi się konfigurację edytowaną przez ludzi do TOML.
Często zadawane pytania
Jak przekonwertować JSON na TOML online?
Czym jest TOML i dlaczego warto konwertować na niego JSON?
Dlaczego najwyższy poziom mojego JSON musi być obiektem?
Co dzieje się z wartościami null podczas konwersji JSON na TOML?
Jak zagnieżdżone obiekty i tablice są konwertowane na TOML?
Co dzieje się z liczbami zmiennoprzecinkowymi, takimi jak 1.0?
Czy moje dane JSON są wysyłane na jakikolwiek serwer?
Czy mogę przekonwertować TOML z powrotem na JSON?
Jak przekonwertować JSON na TOML w wierszu poleceń?
Jak przekonwertować JSON na TOML w Pythonie, Rust lub Node.js?
Czy konwerter zachowuje kolejność kluczy?
Czy istnieje limit rozmiaru pliku dla danych wejściowych JSON?
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.