Konwerter YAML na JSON

Wklej YAML (manifesty Kubernetes, Docker Compose, konfiguracje CI) i natychmiast otrzymaj czysty JSON. Błędy pokazują dokładną linię ze wskaźnikiem.

Działa w przeglądarceBez rejestracjiNic nie jest wysyłane

Wynikowy JSON

Jak używać: YAML na JSON

  1. Wklej YAML do lewego pola lub otwórz plik .yaml/.yml.
  2. JSON pojawia się po prawej podczas pisania. Wybierz 2 spacje, 4 spacje lub tabulatory dla wyniku.
  3. Zaznacz Sortuj klucze, aby uporządkować klucze alfabetycznie. Pomaga to przy porównywaniu konfiguracji.
  4. Jeśli YAML jest nieprawidłowy, pasek stanu pokazuje linię i kolumnę, a problematyczne linie pojawiają się poniżej ze znacznikiem ^.
  5. Skopiuj lub pobierz JSON albo kliknij Zamień, aby przekonwertować go z powrotem na YAML.

Jak YAML mapuje się na JSON

JSON jest podzbiorem YAML 1.2, więc każde mapowanie YAML staje się obiektem JSON, każda sekwencja – tablicą, a skalary – ciągami, liczbami, wartościami logicznymi lub null. Funkcje dostępne tylko w YAML są rozwiązywane podczas konwersji:

  • Komentarze (# …) są usuwane, bo JSON nie ma komentarzy.
  • Kotwice i aliasy (&base, *base, <<: *base) są rozwijane do pełnych kopii.
  • Znaczniki czasu, takie jak 2024-01-02, stają się ciągami ISO 8601.
  • Ciągi wielowierszowe (bloki dosłowne | i zwijane >) stają się zwykłymi ciągami ze znakami \n.

YAML z wieloma dokumentami

Jeden plik może zawierać kilka dokumentów YAML rozdzielonych ---, co jest typowe dla manifestów Kubernetes. JSON nie ma odpowiednika, więc konwerter zwraca tablicę JSON z jednym elementem na dokument i informuje o tym na pasku stanu. Samotne końcowe --- jest ignorowane.

Pułapki YAML 1.1 a 1.2

Ten konwerter stosuje YAML 1.2, aktualną specyfikację. Wiele starszych narzędzi (PyYAML, Psych w Ruby, niektóre wersje Kubernetes i Ansible) nadal czyta YAML 1.1, gdzie reguły są inne:

  • Problem Norwegii: w YAML 1.1 country: no oznacza false, więc kod kraju Norwegii NO znika. To samo dotyczy yes, on, off, y i n. YAML 1.2 traktuje jako wartości logiczne tylko true i false.
  • Liczby ósemkowe: 0755 to liczba ósemkowa w 1.1, ale zwykła dziesiętna w 1.2, który używa 0o755. Dla bezpieczeństwa ujmuj uprawnienia plików w cudzysłowy.
  • Liczby sześćdziesiątkowe: w 1.1 22:30 może zostać sparsowane jako liczba 1350. Ujmuj w cudzysłowy godziny i mapowania portów, np. "8080:80".

Kierunek JSON → YAML automatycznie ujmuje niejednoznaczne ciągi ('no', 'on', 'y') w cudzysłowy, więc wygenerowany YAML czyta się tak samo w obu wersjach.

Najczęściej zadawane pytania

Czy mój YAML jest gdzieś wysyłany?
Nie. Parsowanie odbywa się w przeglądarce przy użyciu otwartoźródłowej biblioteki js-yaml. Konfiguracje z sekretami czy wewnętrznymi nazwami hostów nigdy nie opuszczają Twojego komputera.
Dlaczego mój YAML kończy się błędem „bad indentation”?
Zagnieżdżenie w YAML określają spacje, a tabulatory nie są dozwolone we wcięciach. Upewnij się, że klucze na tym samym poziomie są dokładnie wyrównane, a elementy listy (-) mają spójne wcięcie pod kluczem nadrzędnym.
Co dzieje się z komentarzami YAML?
Są usuwane. JSON nie ma składni komentarzy, więc nie da się ich przenieść. Konwersja z powrotem na YAML ich nie przywróci.
Dlaczego <code>no</code> pozostało ciągiem?
To narzędzie stosuje YAML 1.2, gdzie wartościami logicznymi są tylko true/false. Starsze parsery YAML 1.1 zamieniłyby no, yes, on i off na wartości logiczne („problem Norwegii”).
Czy mogę przekonwertować manifest Kubernetes z kilkoma zasobami?
Tak. Każdy zasób oddzielony --- staje się jednym elementem wynikowej tablicy JSON, gotowej dla jq lub kubectl apply -f -, które akceptuje też listy JSON.

Powiązane narzędzia