Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Konwerter YAML na JSON

Wklej YAML i odbierz sformatowany lub zwarty JSON z rozpoznanymi typami i błędem wskazanym z numerem linii.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Wcięcia tylko spacjami. Nie wklejaj prawdziwych haseł ani kluczy API; treść nie trafia do historii użycia.

Kluczy i elementów

14

Głębokość

3

Linie JSON

20

Rozmiar YAML

189 B

Rozmiar JSON

363 B

JSON

{ "app": { "name": "MyApp", "version": 1.5, "debug": false, "features": [ "auth", "api", "payments" ] }, "database": { "host": "localhost", "port": 5432, "credentials": { "user": "admin", "password": "secret" } } }
Wykryte typy wartości
Typ wartościLiczba
Tekst 7
Liczba całkowita 1
Liczba dziesiętna 1
Wartość logiczna (true/false) 1
Lista 1
Obiekt (mapa) 4
Parser obsługuje bezpieczny podzbiór YAML; przed wdrożeniem zweryfikuj wynik dla zaawansowanych konstrukcji.

Ściąga: jak YAML zamienia się w JSON

Przykłady liczone tym konwerterem
YAMLJSONCo się dzieje
imie: Anna {"imie":"Anna"} Mapa: „klucz: wartość” to pole obiektu.
tags: [a, b] {"tags":["a","b"]} Krótka lista w jednej linii.
port: 5432 {"port":5432} Liczba całkowita.
ver: 3.10 {"ver":3.1} Zero na końcu ginie. Aby zachować „3.10”, wpisz je w cudzysłowie.
kod: 00123 {"kod":"00123"} Zera wiodące: wartość zostaje tekstem.
ok: true {"ok":true} Wartość logiczna (też false).
pusto: {"pusto":null} Brak wartości daje null.
flaga: yes {"flaga":"yes"} Tylko true i false są logiczne; yes, no, on, off zostają tekstem.
cyt: "5432" {"cyt":"5432"} Cudzysłów wymusza tekst.

Jak to liczymy

Konwerter czyta wcięcia (same spacje). Linia „klucz: wartość” staje się polem obiektu, linia „- element” pozycją listy, a głębsze wcięcie zagnieżdżeniem. Wartość trafia do JSON jako: true/false – wartość logiczna, ~ lub null – null, liczba bez zer wiodących – liczba, reszta – tekst. Komentarze po „ #” są pomijane.

Twój dokument: 14 elementów, głębokość 3, JSON ma 363 B.

Typowe pułapki

  • Wersja 3.10 zamienia się w liczbę 3.1 – wpisz ją w cudzysłowie.
  • Kody z zerami wiodącymi (00123) zostają tekstem.
  • yes, no, on, off to tekst, a nie wartości logiczne.
  • Tabulator w wcięciu to błąd – użyj spacji.
  • Powtórzony klucz: zostaje ostatnia wartość.

Zakres konwertera

Obsługiwane: mapy, listy, zagnieżdżenia, cudzysłowy, komentarze, krótkie [a, b] i {a: 1}, nagłówek ---. Poza zakresem: aliasy i kotwice (&, *), tagi (!!), bloki wieloliniowe (| i >), wiele dokumentów. Dla takich konstrukcji użyj pełnego parsera YAML w swoim języku.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Konwerter YAML na JSON

YAML jest czytelniejszy dla ludzi, JSON — łatwiejszy w programach. Ten konwerter YAML na JSON zamienia jeden na drugi bez instalowania narzędzi: wklejasz plik konfiguracyjny, a obok od razu widzisz JSON, liczbę elementów, głębokość zagnieżdżenia i wykryte typy wartości.

Wynik może być sformatowany (wcięcie 2 spacje, 4 spacje lub tabulator) albo zwarty w jednej linii. Opcjonalnie posortujesz klucze map alfabetycznie albo zachowasz wszystkie wartości jako tekst. Gotowe przykłady pokazują typowe pliki: prosty, zagnieżdżony, Docker Compose i ConfigMap z Kubernetes.

Obsługiwana składnia

ElementPrzykład
Mapaklucz: wartość
Lista- element
Zagnieżdżeniewcięcie spacjami, np. o 2 spacje
Krótki zapis w jednej liniitags: [a, b], limits: {cpu: 1, mem: 512}
Komentarz# tekst na początku linii albo po spacji
Cudzysłowy"tekst", 'tekst'
Typyliczby, true/false, null i ~
Nagłówek dokumentu--- w pierwszej linii

Przykład

app:
  name: MyApp
  features:
    - auth
    - api

Daje JSON (przy wyłączonej opcji „Sformatowany JSON”):

{"app":{"name":"MyApp","features":["auth","api"]}}

Jak działa konwerter YAML na JSON

Parser czyta dokument linia po linii i na podstawie wcięcia buduje drzewo zależności. Wcięcie wyznacza poziom zagnieżdżenia, a dwukropek rozdziela klucz od wartości. Linia rozpoczęta myślnikiem i spacją jest elementem listy i trafia do klucza, który stoi bezpośrednio nad nią. Lista może mieć to samo wcięcie co jej klucz (porty:, a pod spodem - 80) albo głębsze.

Kolejność operacji jest stała: odczyt linii, odrzucenie pustych wierszy i komentarzy, ustalenie poziomu na podstawie liczby spacji, przypisanie węzła do rodzica, rozpoznanie typu wartości, a na końcu serializacja całej struktury do formatu JSON. Typ rozpoznawany jest po zapisie wartości, a nie po nazwie klucza, dlatego ta sama nazwa klucza może raz nieść liczbę, a raz tekst.

Wynik różni się od wejścia przede wszystkim tym, że JSON nie zna komentarzy ani wcięć jako elementu składni. Wszystkie klucze trafiają do cudzysłowów, a wartości liczbowe, logiczne i puste zachowują swój typ. Kolejność kluczy pokrywa się z kolejnością w pliku wejściowym, chyba że włączysz „Sortuj klucze map” (sortowanie naturalne, kolejność elementów list zostaje bez zmian). Polskie znaki i ukośniki trafiają do wyniku wprost, bez zamiany na sekwencje \u0105 czy \/. Wynik odświeża się sam chwilę po ostatniej zmianie w polu, a przycisk „Konwertuj na JSON” przelicza go jawnie.

Przykład krok po kroku

  1. Przygotuj dokument. Klucz najwyższego poziomu to serwis, a pod nim stoją cztery klucze potomne: nazwa: api, wersja: 2.1, aktywne: true oraz porty: z dwoma elementami listy, - 80 i - 443.
  2. Wklej treść do pola. Dokument zajmuje siedem linii bez pustych wierszy. Wcięcia wykonaj spacjami: klucze potomne cofnięte o dwa znaki względem rodzica, elementy listy o kolejne dwa.
  3. Sprawdź poziomy. serwis leży na poziomie zerowym, cztery klucze potomne na pierwszym, a elementy listy pod kluczem porty na drugim. Kafelek „Głębokość” pokaże 3: obiekt główny, obiekt serwis i listę portów.
  4. Ustal typy. 2.1 to liczba dziesiętna, 80 i 443 to liczby całkowite, true to wartość logiczna, a api zwykły tekst. Tabela „Wykryte typy wartości” pokaże: tekst 1, liczba całkowita 2, liczba dziesiętna 1, wartość logiczna 1, lista 1, obiekt 2.
  5. Odczytaj wynik. Kafelek „Kluczy i elementów” pokaże 7: klucz serwis, cztery klucze potomne i dwa elementy listy. Sformatowany JSON z wcięciem 4 spacji ma 11 linii, a w wersji zwartej mieści się w jednej: {"serwis":{"nazwa":"api","wersja":2.1,"aktywne":true,"porty":[80,443]}}.

Mapowanie elementów YAML na JSON

Element w YAMLOdpowiednik w JSONNa co uważać
MapaObiekt w nawiasach klamrowychLinia bez dwukropka kończy konwersję błędem z numerem linii
ListaTablica w nawiasach kwadratowychPo myślniku musi być spacja: -auth nie jest elementem listy
Zagnieżdżenie wcięciemGłębszy obiekt albo tablicaTabulator w dowolnym miejscu linii daje błąd
Komentarz ze znakiem #Brak odpowiednikaZnak # bez spacji przed nim, np. w strona#sekcja, zostaje częścią wartości
Wartość logiczna true lub falseWartość logiczna bez cudzysłowówTrue też działa; yes, no, on, off zostają tekstem
Wartość pusta nullWartość nullnull, ~ i sam klucz: bez wartości dają ten sam wynik
Liczba całkowitaLiczba bez cudzysłowówZera wiodące (00123), znak plus, zapis wykładniczy i ponad 15 cyfr dają tekst
Liczba dziesiętnaLiczba z kropkąPrzecinek daje tekst; końcowe zero ginie: 3.10 zmienia się w 3.1
Tekst w cudzysłowieTekstSposób na wymuszenie tekstu, np. "5432" albo '3.10'

Praktyczne wskazówki

  • Ustaw edytor na spacje. Wyłącz wstawianie tabulatorów, zanim zaczniesz pisać YAML. Jeden tabulator wystarczy, żeby konwersja zatrzymała się z błędem wskazującym linię.
  • Trzymaj stałe wcięcie na każdym poziomie. Elementy tego samego poziomu muszą mieć identyczne wcięcie. Linia wcięta głębiej, nad którą nie stoi klucz: bez wartości, kończy się komunikatem o nieoczekiwanym wcięciu.
  • Konwertuj po każdej większej zmianie. Zamiana na JSON pokazuje strukturę bez wcięć, więc łatwiej zauważysz, że jakiś klucz wylądował o poziom wyżej, niż powinien.
  • Sprawdzaj typy w wyniku. Jeśli liczba trafiła do cudzysłowów, w YAML była w cudzysłowie, miała zera wiodące albo zawierała znak, którego parser nie uznaje za część liczby. Tabela wykrytych typów pod wynikiem pozwala to wyłapać bez czytania całego JSON.
  • Wartości dla ConfigMap. Pole data w Kubernetes przyjmuje wyłącznie tekst, więc liczby i true ujmij w cudzysłowy albo włącz „Zachowaj wszystkie skalary jako tekst”. Ta opcja zamienia w tekst także krótkie listy [a, b], a sam klucz: nadal daje null.
  • Usuwaj komentarze przed konwersją. Skoro JSON ich nie przechowuje, lepiej mieć świadomość, co wypadnie z dokumentu, zamiast szukać brakującej informacji w wyniku.

Ograniczenia i źródła błędów

  • To uproszczony parser. Obsługuje bezpieczny podzbiór YAML: mapy, listy, zagnieżdżenia, cudzysłowy, komentarze i krótkie kolekcje w jednej linii. Konstrukcji spoza tego zakresu nie zgaduje, tylko zgłasza błąd z numerem i treścią linii.
  • Brak obsługi kotwic, aliasów i tagów. Zapisy &baza, *baza, <<: *baza oraz jawne tagi typów (zaczynające się od wykrzyknika) są wyłączone ze względów bezpieczeństwa, dlatego powtórzone fragmenty trzeba rozpisać ręcznie.
  • Wieloliniowe stringi i bloki tekstowe. Bloki | i > kończą się błędem. Tekst na kilka linii zapisz w jednej linii w podwójnym cudzysłowie, z \n w miejscu złamania.
  • Jeden dokument naraz. Separator --- jest dopuszczalny tylko na początku; kolejny oznacza wiele dokumentów i daje błąd. Pliki Kubernetes z kilkoma zasobami konwertuj po jednym.
  • Powtórzone klucze. Gdy ten sam klucz wystąpi dwa razy na jednym poziomie, zostaje ostatnia wartość, a pod wynikiem pojawia się ostrzeżenie.
  • Limity. Do 256 KB tekstu w kodowaniu UTF-8 i najwyżej 512 poziomów zagnieżdżenia. Niespójne wcięcia, brak dwukropka przy kluczu albo myślnik bez spacji to najczęstsze przyczyny komunikatu o błędzie.

Najczęstsze pytania

Dlaczego konwerter zgłasza błąd przy poprawnie wyglądającym pliku?

Najczęściej winne są tabulatory w miejscu spacji, niespójne wcięcia na tym samym poziomie albo brak dwukropka po kluczu. Komunikat podaje numer linii i jej treść; błąd pojawia się też przy konstrukcjach spoza zakresu, np. kotwicy albo bloku |.

Czy obsługuje wieloliniowe stringi?

Nie, to uproszczony parser. Zapisz tekst w jednej linii w cudzysłowie, a dla pełnej specyfikacji YAML użyj dedykowanej biblioteki w swoim języku.

Czym są kotwice YAML?

To mechanizm wielokrotnego użycia fragmentów: &nazwa oznacza fragment, a *nazwa wstawia go w innym miejscu. Ten konwerter ich nie rozwija i zgłasza błąd.

Czy wklejony YAML jest gdzieś zapisywany?

Konwersja wykonuje się na serwerze w trakcie wpisywania, ale treść dokumentu nie trafia do historii użycia; zapisywany jest tylko tryb i liczba elementów. Mimo to nie wklejaj prawdziwych haseł ani kluczy API.

Czym różni się YAML od JSON?

YAML stawia na czytelność dla człowieka: używa wcięć, myślników i komentarzy. JSON celowo rezygnuje z komentarzy i formatowania na rzecz jednoznacznej składni, którą łatwiej parsować programom.

Dlaczego liczba w wyniku jest tekstem?

Typ zależy od zapisu wartości, nie od nazwy klucza. Liczba w cudzysłowie, z zerem wiodącym, z przecinkiem albo dłuższa niż 15 cyfr trafia do wyniku jako tekst, co chroni kody i identyfikatory przed zniekształceniem.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!