TanodTools
PL

Konwertuj YAML na JSON

Wklej YAML i odbierz JSON, z rozwiniętymi kotwicami i kluczami scalającymi oraz dokładnym wierszem każdego błędu składni.

Działa w całości w Twojej przeglądarce

Układ

Dane do około 10 MB. Czyta YAML 1.2 tylko ze standardowymi typami; własne tagi, takie jak !!python/object, są odrzucane, a nie wykonywane.

Jak zamienić YAML na JSON

  1. Wklej YAML do pola albo kliknij Wstaw przykład.
  2. Wybierz 2 spacje, 4 spacje, tabulatory albo Minifikuj jako układ JSON.
  3. Jeśli YAML ma błąd składni, zobaczysz jego wiersz i kolumnę. W przeciwnym razie skopiuj JSON albo pobierz go jako plik .json.

Od YAML do JSON

YAML i JSON opisują ten sam rodzaj danych: mapowania, listy i proste wartości. YAML piszą ludzie, używając wcięć zamiast nawiasów klamrowych, komentarzy i skrótów takich jak kotwice; JSON to to, czego oczekuje większość programów i API. Konwersja między nimi jest częsta, gdy manifest Kubernetes, plik Compose lub opis OpenAPI trzeba przekazać czemuś, co czyta tylko JSON.

Niektóre cechy YAML nie mają odpowiednika w JSON, więc konwerter je rozwiązuje. Kotwica (&base) oznacza blok, który alias (*base) może wykorzystać ponownie, a klucz scalający (<<) kopiuje wpisy mapowania do innego; w JSON każde z nich staje się pełną kopią. Komentarze są usuwane, ponieważ JSON nie może ich przechowywać. Plik z kilkoma dokumentami rozdzielonymi przez --- staje się tablicą JSON.

Reguły typów są zgodne z YAML 1.2: true i false to wartości logiczne, null i ~ to null, liczby to liczby, a wszystko inne, w tym yes i 2024-05-01, to tekst. Błędy składni mają wiersz i kolumnę, a najczęstsze przyczyny to tabulator użyty do wcięcia, klucz powtórzony w tym samym mapowaniu oraz wartość, która nie jest wcięta pod swoim kluczem.

Wskazówki

Najczęstsze pytania

Czy mój YAML jest przesyłany?

Nie. Parser YAML jest ładowany z tej witryny przy pierwszym wklejeniu i działa w przeglądarce. Konfiguracja z hasłami lub kluczami nie jest nigdzie wysyłana.

Dlaczego yes nadal jest tekstem „yes”?

To narzędzie stosuje YAML 1.2, w którym wartościami logicznymi są tylko true i false. Słowa yes, no, on i off pozostają ciągami znaków, co pozwala uniknąć tzw. problemu Norwegii, w którym kod kraju NO zamienia się w false w parserach YAML 1.1. Jeśli odbiorcą jest parser YAML 1.1, może on odczytać te słowa inaczej.

Co dzieje się z datami i znacznikami czasu?

Wartość taka jak 2024-05-01 pozostaje ciągiem „2024-05-01”. JSON nie ma typu daty, a zamiana jej na liczbę lub inny format spowodowałaby utratę informacji.

A bardzo duże liczby całkowite?

Liczby całkowite powyżej 9 007 199 254 740 991 (253 - 1) są zapisywane cyfra po cyfrze, a nie zaokrąglane, więc identyfikator taki jak 12345678901234567890 przetrwa. Pamiętaj, że program, który później odczyta ten JSON zwykłymi liczbami JavaScript, zaokrągli go.

Czy kotwice, aliasy i klucze scalające są obsługiwane?

Tak. Kotwice &name i aliasy *name są rozwijane, a <<: *name scala mapowanie z innym. Ponieważ JSON nie ma odwołań, każdy alias jest zapisywany w całości.

Czym jest limit aliasów i limit 20 MB?

Mały plik YAML może używać aliasów, które rozwijają się w coś ogromnego, co znane jest jako bomba aliasów. Pliki z ponad 10 000 aliasów są odrzucane, a konwersja zatrzymuje się, jeśli JSON przekroczyłby 20 MB, aby karta nie zawisła.