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
Jak używać: YAML na JSON
- Wklej YAML do lewego pola lub otwórz plik
.yaml/.yml. - JSON pojawia się po prawej podczas pisania. Wybierz 2 spacje, 4 spacje lub tabulatory dla wyniku.
- Zaznacz Sortuj klucze, aby uporządkować klucze alfabetycznie. Pomaga to przy porównywaniu konfiguracji.
- Jeśli YAML jest nieprawidłowy, pasek stanu pokazuje linię i kolumnę, a problematyczne linie pojawiają się poniżej ze znacznikiem
^. - 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: nooznaczafalse, więc kod kraju NorwegiiNOznika. To samo dotyczyyes,on,off,yin. YAML 1.2 traktuje jako wartości logiczne tylkotrueifalse. - Liczby ósemkowe:
0755to liczba ósemkowa w 1.1, ale zwykła dziesiętna w 1.2, który używa0o755. Dla bezpieczeństwa ujmuj uprawnienia plików w cudzysłowy. - Liczby sześćdziesiątkowe: w 1.1
22:30moż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?
Dlaczego mój YAML kończy się błędem „bad indentation”?
-) mają spójne wcięcie pod kluczem nadrzędnym.Co dzieje się z komentarzami YAML?
Dlaczego <code>no</code> pozostało ciągiem?
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?
--- staje się jednym elementem wynikowej tablicy JSON, gotowej dla jq lub kubectl apply -f -, które akceptuje też listy JSON.