Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Konwerter JSON na YAML

Zamień JSON na czytelny YAML z wcięciem 2 lub 4 spacji, sortowaniem kluczy i pobraniem gotowego pliku .yaml.

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";
}

Ctrl+Enter też konwertuje. Nie wklejaj haseł ani kluczy API.

Przykłady:

Węzły JSON

7

Obiekty: 1, tablice: 1, wartości: 5

Głębokość

2

Linie YAML

7

Rozmiar JSON

66 B

Rozmiar YAML

65 B

Wynik YAML

--- app: webp version: 2 debug: false servers: - web1 - web2

Ściąga: co dzieje się z wartościami

Zapis wartości JSON w YAML przy bieżących ustawieniach
JSONYAMLCo to znaczy
"sklep" sklep Zwykły tekst.
"123" "123" Tekst wyglądający jak liczba: cudzysłów zachowuje typ tekstowy.
"yes" "yes" Słowa yes, no, on, off bywają czytane jako wartości logiczne.
"2024-01-31" "2024-01-31" Data jako tekst: cudzysłów chroni przed zamianą na datę.
"a: b" "a: b" Dwukropek w tekście wymaga cudzysłowu.
1.0 1.0 Liczba zachowuje część dziesiętną.
true true Wartość logiczna.
null null Brak wartości.
[] [] Pusta tablica.
{} {} Pusty obiekt.

Kiedy tekst dostaje cudzysłów

W stylu czytelnym cudzysłów mają teksty, które parser mógłby wziąć za coś innego: zaczynające się od cyfry (liczby, daty), słowa true, false, null, yes, no, on, off, teksty puste oraz zawierające dwukropek, # lub inne znaki specjalne. Reszta idzie bez cudzysłowu. Styl bezpieczny cytuje każdy tekst i każdy klucz.

Wcięcia, nie tabulatory

YAML pokazuje zagnieżdżenie wcięciem ze spacji, a tabulatory w wcięciach są w nim niedozwolone. Elementy tablicy zaczynają się od myślnika i spacji. Znacznik --- na początku oznacza początek dokumentu i jest opcjonalny.

Najczęstsze błędy w JSON

Przecinek po ostatniej pozycji, apostrofy zamiast cudzysłowów, klucze bez cudzysłowów, komentarze oraz wartości True, None czy undefined. Komunikat podaje linię i kolumnę, w której parser zauważył problem. Przyczyna bywa chwilę wcześniej, np. brak przecinka.

Co zostaje po konwersji

JSON nie ma komentarzy, więc YAML też ich nie zawiera. Liczby całkowite większe niż zakres 64 bitów są zapisane jako tekst w cudzysłowie, żeby nie stracić cyfr. Przy powtórzonym kluczu w obiekcie zostaje ostatnia wartość. Treść JSON nie trafia do historii użycia.

Oceń to narzędzie:

Powiązane narzędzia

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

Konwerter JSON na YAML

JSON i YAML opisują te same struktury danych, ale YAML jest bardziej czytelny dla człowieka. Wklejasz JSON, klikasz Konwertuj (albo Ctrl+Enter) i dostajesz YAML gotowy do skopiowania lub pobrania jako plik dane.yaml. Konwersja JSON na YAML przydaje się przy plikach konfiguracyjnych, manifestach Kubernetes, Docker Compose i workflow CI.

Czym się różnią?

CechaJSONYAML
Strukturanawiasy { } i [ ]wcięcia ze spacji i myślniki
Komentarzebrakdozwolone (#)
Cudzysłowyobowiązkowe dla tekstu i kluczypotrzebne tylko przy niejednoznacznych wartościach
Czytelnośćśredniawysoka
PopularnośćAPI, danekonfiguracje, Docker, K8s

Przykład

{"app": "webp", "servers": ["web1", "web2"]}

Zamienia się na (przy domyślnych ustawieniach):

---
app: webp
servers:
  - web1
  - web2

Pierwsza linia --- to znacznik początku dokumentu YAML. Jest opcjonalny i można go wyłączyć w opcjach.

Opcje konwersji

  • Wcięcie: 2 albo 4 spacje na poziom zagnieżdżenia. Dwie spacje to najczęstsza konwencja w Kubernetes i GitHub Actions.
  • Cudzysłowy: styl czytelny cytuje tylko te teksty, które parser mógłby źle odczytać. Styl bezpieczny bierze w cudzysłów każdy tekst i każdy klucz, a liczby, true, false i null zostawia bez nich.
  • Sortowanie kluczy A–Z porządkuje klucze w każdym obiekcie, bez rozróżniania wielkości liter i z naturalną kolejnością liczb (item2 przed item10). Kolejność elementów tablic się nie zmienia.
  • Znacznik --- jest domyślnie włączony. Wyłącz go, jeśli wklejasz wynik w środek istniejącego pliku.

Zmiana opcji od razu przelicza wynik. Nad wynikiem widać liczbę węzłów JSON, głębokość zagnieżdżenia, liczbę linii YAML oraz rozmiar obu wersji w bajtach. Przyciski z przykładami (podstawowy, zagnieżdżony, tablica obiektów, konfiguracja w stylu workflow CI) wczytują gotowe dane do testu.

Na co uważać?

  • Wartości tekstowe mogą wymagać cudzysłowów (np. „true”, „123”).
  • Wcięcia w YAML muszą używać spacji, nie tabulatorów.
  • Konwerter zachowuje typy: liczby, booleany i null nie są cytowane.

Jak konwerter zamienia JSON na YAML

Konwersja przebiega w dwóch etapach. Najpierw parser JSON zamienia tekst wejściowy na drzewo wartości: obiekty, tablice, łańcuchy znaków, liczby, booleany i null. Jeśli składnia jest błędna, konwerter podaje linię i kolumnę oraz opis problemu, np. zbędny przecinek przed „}”, apostrof zamiast cudzysłowu albo klucz bez cudzysłowu. Dopiero potem serializer przechodzi drzewo od korzenia w dół i zapisuje każdy poziom jako kolejne linie YAML, a głębokość zagnieżdżenia oddaje wcięciem.

Reguła mapowania jest stała: obiekt staje się mapowaniem, czyli parą klucz: wartość w jednej linii, a tablica sekwencją, w której każdy element poprzedza myślnik i spacja. Gdy elementem tablicy jest obiekt, myślnik występuje w linii pierwszego klucza, a pozostałe klucze tego obiektu trafiają do linii poniżej, wyrównane do pierwszego klucza.

Ostatni etap to decyzja o cudzysłowach. W stylu czytelnym tekst zostaje bez nich tylko wtedy, gdy zaczyna się od litery lub podkreślnika i zawiera wyłącznie litery (także polskie), cyfry, spacje oraz znaki _ . / -. Cudzysłów dostają teksty zaczynające się od cyfry (liczby, daty, kody pocztowe), puste, zakończone spacją, zawierające dwukropek, # lub @ oraz słowa true, false, null, yes, no, on, off, y i n. Liczby, booleany i null pochodzące z JSON-a pozostają bez cudzysłowów, bo ich typ jest znany z drzewa.

Konwersja krok po kroku

  1. Wklejasz tekst: {"app":"webp","port":8080,"debug":false,"tags":["json","yaml"],"limits":{"cpu":2,"ram":256}}. Parser sprawdza składnię i buduje drzewo wartości.
  2. W obiekcie głównym jest 5 kluczy: app, port, debug, tags i limits. Tablica tags ma 2 elementy, a zagnieżdżony obiekt limits 2 klucze. Razem daje to 7 wartości skalarnych i 3 kontenery, więc kafelek „Węzły JSON” pokaże 10, a „Głębokość” 2.
  3. Każdy klucz obiektu głównego trafia do osobnej linii w postaci klucz: wartość, więc powstają linie app: webp, port: 8080 oraz debug: false.
  4. Klucz tags zapisuje się w osobnej linii, a jego dwa elementy wchodzą poziom niżej jako pozycje sekwencji z myślnikiem, z wcięciem dwóch spacji (lub czterech, jeśli tak ustawisz).
  5. Obiekt limits jest zagnieżdżony, więc jego klucze cpu i ram również dostają wcięcie i nie są otoczone nawiasami klamrowymi.
  6. Wynik ma 9 linii danych: app: webp, port: 8080, debug: false, tags:, dwie pozycje z myślnikiem, limits:, cpu: 2 oraz ram: 256. Z włączonym znacznikiem --- licznik „Linie YAML” pokaże 10. Wartości 8080, 2, 256 i false nie mają cudzysłowów, bo ich typ jest jednoznaczny.

Mapowanie elementów JSON na zapis YAML

Element w JSONZapis w YAMLNa co zwrócić uwagę
Obiekt {"a": 1}a: 1Klucz i wartość w jednej linii, po dwukropku spacja
Tablica ["a", "b"]dwie linie z myślnikiemKażdy element poprzedza myślnik i spacja
Tablica obiektówmyślnik w linii pierwszego kluczaPozostałe klucze obiektu niżej, wyrównane do pierwszego
Łańcuch "webp"webpBez cudzysłowów, gdy treść jest jednoznaczna
Łańcuch "123""123"Cudzysłów chroni typ tekstowy przed odczytem jako liczba
Liczba 8080 lub 1.08080, 1.0Bez cudzysłowów, część dziesiętna .0 zostaje
Boolean falsefalseBez cudzysłowów
null oraz puste kontenerynull, {}, []Brak wartości i kontenery puste zapisywane wprost

Praktyczne wskazówki

  • Trzymaj spacje, nie tabulatory. YAML nie dopuszcza znaku tabulacji we wcięciu. Jeśli poprawiasz wynik ręcznie, ustaw w edytorze zamianę tabulatora na spacje, inaczej plik przestanie się parsować.
  • Łańcuchy typu "true", "no", "123" albo "1.0" mogą zostać odczytane jako boolean lub liczba. Konwerter otacza je cudzysłowem, ale przy ręcznej edycji łatwo ten cudzysłów zgubić.
  • Usuń komentarze przed wklejeniem. JSON ich nie przewiduje, więc zapisy // i /* */ wywołają błąd parsowania. Komentarze YAML ze znakiem # dopisz dopiero po konwersji.
  • Wynik traktuj jako punkt wyjścia: po konwersji możesz dodać kotwice, aliasy i komentarze, których JSON nie przenosi.
  • Dane są przetwarzane na serwerze, a ich treść nie trafia do historii użycia. Mimo to nie wklejaj haseł ani kluczy API.

Czego narzędzie nie uwzględnia

  • Komentarze i kotwice YAML: jeśli konwertujesz w obie strony, komentarze oraz kotwice i aliasy znikną, bo JSON nie ma dla nich odpowiednika.
  • Duplikaty kluczy: JSON z powtórzonym kluczem w tym samym obiekcie jest niejednoznaczny. Zostaje ostatnia wartość, a konwerter nie sygnalizuje konfliktu.
  • Duże liczby: liczby całkowite spoza zakresu 64 bitów (np. długie identyfikatory) konwerter zapisuje jako tekst w cudzysłowie, żeby nie zgubić cyfr. W YAML są wtedy łańcuchem, nie liczbą. Ułamki z bardzo wieloma cyframi po przecinku są ograniczone precyzją liczb zmiennoprzecinkowych.
  • Limity: JSON do 1 MB, najwyżej 100 000 węzłów i 40 poziomów zagnieżdżenia. Większe pliki lepiej konwertować lokalnie skryptem.
  • Różnice między YAML 1.1 i 1.2: zapisy takie jak yes, no czy on parser YAML 1.1 czyta jako wartości logiczne. Konwerter cytuje te słowa, więc w obu wersjach pozostają tekstem, ale ręcznie dopisane wartości trzeba pilnować samemu.

Najczęstsze pytania

Jak przekonwertować JSON na YAML online?

Wklej tekst JSON w pole, wybierz wcięcie i styl cudzysłowów, a potem kliknij Konwertuj lub naciśnij Ctrl+Enter. Wynik skopiujesz albo pobierzesz przyciskiem „Pobierz plik .yaml”.

Czy YAML zastępuje JSON?

W wielu konfiguracjach tak (Docker Compose, Kubernetes, CI). W API i wymianie danych nadal dominuje JSON.

Dlaczego moja wartość dostała cudzysłów?

Bo wyglądałaby jak liczba, data lub boolean albo zawiera znak specjalny, np. dwukropek. Cudzysłów chroni typ i treść. W stylu bezpiecznym cytowany jest każdy tekst.

Czy mogę wkleić bardzo duży JSON?

Do 1 MB i 100 000 węzłów. Powyżej tych limitów konwerter zgłosi błąd, a plik lepiej przetworzyć lokalnie.

Dlaczego w wyniku pojawiają się myślniki?

Myślnik poprzedza każdy element tablicy. To składnia sekwencji w YAML, odpowiednik nawiasów kwadratowych z JSON-a.

Ile spacji powinno mieć wcięcie w YAML?

Specyfikacja nie narzuca liczby, wymaga tylko spójności w obrębie bloku. Konwerter pozwala wybrać 2 lub 4 spacje.

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