Konwerter YAML na JSON
Zamień pliki YAML na poprawny JSON.
Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.
- Pliki z wieloma dokumentami
- Dokładne miejsce błędu
- Nic nie jest wysyłane
Jak przekonwertować YAML na JSON
- Wklej YAML albo wczytaj plik .yaml lub .yml.
- Napraw błąd we wskazanej linii i kolumnie.
- Skopiuj JSON albo pobierz go.
Przykład: YAML na wejściu, JSON na wyjściu
| Linia YAML | JSON |
|---|---|
| name: Sam | "name": "Sam" |
| age: 30 | "age": 30 |
| active: true | "active": true |
| tags: [a, b] | "tags": ["a", "b"] |
Funkcje YAML, które są zachowywane
- Kotwice (&name) i aliasy (*name) są rozwijane do pełnych kopii wartości, do której się odnoszą.
- Styl przepływowy, na przykład wstawiony {a: 1} albo [1, 2], parsuje się tak samo jak odpowiadający mu styl blokowy.
- Kilka dokumentów oddzielonych linią złożoną z trzech łączników zamienia się w jedną tablicę JSON, w kolejności występowania.
- Komentarze zaczynające się od # są pomijane, bo JSON nie ma składni komentarzy, do której można by je przenieść.
Częste błędy YAML
| Objaw | Prawdopodobna przyczyna |
|---|---|
| Błąd niepoprawnego wcięcia | Znak tabulacji albo linia wcięta o jedną spację inaczej niż ta powyżej |
| Nieoczekiwany koniec strumienia | Cudzysłów albo nawias pozostawiony otwarty gdzieś wcześniej |
| Wartość nieoczekiwanie zamienia się w true albo false | Samo yes, no, on albo off zapisane bez cudzysłowu |
Gdzie przydaje się YAML na JSON
- Odczyt dokładnych wartości manifestu Kubernetes w formacie, który twój skrypt już rozumie.
- Debugowanie pliku pipeline'u CI przez podgląd jego sparsowanej struktury zamiast surowych wcięć.
- Podanie konfiguracji YAML do narzędzia albo API, które przyjmuje tylko JSON.
YAML na JSON: najczęstsze pytania
Co się dzieje z kilkoma dokumentami YAML w jednym pliku?
Dokumenty oddzielone linią złożoną z trzech łączników są konwertowane osobno, a wynik zwracany razem jako jedna tablica JSON, w kolejności występowania.
Dlaczego pojawia się błąd niepoprawnego wcięcia?
YAML odczytuje strukturę z wcięć, więc linia wcięta o jedną spację za daleko, albo tabulator zamiast spacji, psuje wszystko. Błąd wskazuje linię i kolumnę, a Przejdź do błędu ją zaznacza.
Czy obsługiwane są kotwice i aliasy?
Tak. Wartość oznaczona kotwicą (znak &) i użyta ponownie aliasem (znak *) zostaje skopiowana w każde miejsce, w którym jest wykorzystana.
Co dzieje się z datami?
Daty takie jak 2024-05-01 zostają zapisane jako tekst, bo JSON nie ma typu daty.
Czy mogę wkleić YAML z wcięciami zrobionymi tabulatorami?
Nie. YAML wymaga spacji do wcięć, więc tabulator powoduje błąd niepoprawnego wcięcia w dokładnie wskazanej linii. Zamień go na 2 spacje i spróbuj ponownie.
Co dzieje się z powtórzonym kluczem w mapie YAML?
Wygrywa ostatnia wartość zapisana dla powtórzonego klucza, bo tak leżący u podstaw parser rozwiązuje mapę, zanim zamieni ją na JSON.
Czy można przekonwertować plik YAML, który dołącza inny plik?
Nie. Niestandardowe znaczniki takie jak !include, używane przez niektóre procesory YAML, wymagają dostępu do systemu plików, którego to narzędzie w przeglądarce nie ma. Zwykły YAML bez niestandardowych znaczników konwertuje się normalnie.
Czy obsługuje jawne znaczniki typu, takie jak !!str albo !!int?
Tak, popularne jawne znaczniki są odczytywane i konwertowane na pasujący typ JSON, zamiast być zgadywane na podstawie kształtu wartości.