Przejdź do treści

Konwerter YAML na JSON

Zamień konfigurację YAML w ścisły JSON z dokładnymi liczbami i jasnymi błędami.

Wynik
Opcje
Działa w przeglądarce – Twoje dane nie są nigdzie wysyłane.

Jak używać

  1. Wklej konfigurację YAML do edytora wejściowego.
  2. W polu „Wynik” wybierz „Wcięcie 2”, „Wcięcie 4” lub „Minifikuj”.
  3. Jeśli YAML zawiera kilka dokumentów, ustaw „Wiele dokumentów” na „Tablica JSON”.
  4. W polu „Klucze liczbowe i logiczne” wybierz „Zamień na ciągi” albo „Odrzuć”.

Przykłady

Kody odpowiedzi w OpenAPI

Dane wejściowe
openapi: 3.0.3
info:
  title: API zamówień
  version: 1.0.0
paths:
  /zamowienia:
    get:
      responses:
        200:
          description: Lista zamówień
        404:
          description: Nie znaleziono
Wynik
{"openapi":"3.0.3","info":{"title":"API zamówień","version":"1.0.0"},"paths":{"/zamowienia":{"get":{"responses":{"200":{"description":"Lista zamówień"},"404":{"description":"Nie znaleziono"}}}}}}

Wspólne ustawienia usług w Compose

Dane wejściowe
x-domyslne: &domyslne
  restart: unless-stopped
  environment:
    TZ: Europe/Warsaw
services:
  sklep:
    <<: *domyslne
    image: sklep:1.4
  raporty:
    <<: *domyslne
    image: raporty:2.1
    restart: on-failure
Wynik
{
    "x-domyslne": {
        "restart": "unless-stopped",
        "environment": {
            "TZ": "Europe/Warsaw"
        }
    },
    "services": {
        "sklep": {
            "restart": "unless-stopped",
            "environment": {
                "TZ": "Europe/Warsaw"
            },
            "image": "sklep:1.4"
        },
        "raporty": {
            "environment": {
                "TZ": "Europe/Warsaw"
            },
            "image": "raporty:2.1",
            "restart": "on-failure"
        }
    }
}

Dwa dokumenty Kubernetes

Dane wejściowe
apiVersion: v1
kind: Namespace
metadata:
  name: sklep
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: ustawienia
  namespace: sklep
data:
  waluta: PLN
  jezyk: pl
Wynik
[
  {
    "apiVersion": "v1",
    "kind": "Namespace",
    "metadata": {
      "name": "sklep"
    }
  },
  {
    "apiVersion": "v1",
    "kind": "ConfigMap",
    "metadata": {
      "name": "ustawienia",
      "namespace": "sklep"
    },
    "data": {
      "waluta": "PLN",
      "jezyk": "pl"
    }
  }
]

Jak typy YAML zamieniają się w JSON

YAMLJSONUwaga
name: Alice, "02134"ciągLiczby w cudzysłowach pozostają ciągami.
30, 1.10, 0x1F, 12345678901234567890liczbaZapisane dokładnie jak w YAML; hex i liczby ósemkowe stają się dziesiętne.
true, Falsewartość logicznayes, no, on pozostają ciągami (YAML 1.2).
null, ~, pusta wartośćnull
2001-12-14, 12:30:00ciągBez ukrytej zamiany na znaczniki czasu.
listy, mapy, kotwice, klucze scalające <<tablica, obiektAliasy są rozwijane; kolejność kluczy jest zachowana.
.inf, .nan, !!binary, !Ref, lista jako klucz—Błąd ze ścieżką i linią, nigdy cicha zmiana.

FAQ

Czy yes, no i daty zmieniają typ podczas konwersji?

Domyślnie obowiązuje YAML 1.2: yes, no, on i off pozostają tekstem, podobnie jak daty i godziny. Wartości true i false są logiczne, a null, ~ i pusta wartość stają się null. Dyrektywa %YAML 1.1 włącza dla danego dokumentu reguły YAML 1.1, więc na przykład yes staje się true.

Czy konwerter zachowuje duże liczby bez utraty precyzji?

Konwerter zachowuje dokładny zapis liczb takich jak 12345678901234567890, 1.10, 1e3 i -0. Liczby szesnastkowe i ósemkowe zapisuje dziesiętnie, na przykład 0x1F jako 31.

Czy mój YAML jest wysyłany na serwer?

Konwersja odbywa się w Twojej przeglądarce, a kod narzędzia nie wysyła danych YAML ani JSON w żądaniach sieciowych. Strona korzysta z Google Analytics, ale zdarzenia zawierają tylko identyfikator narzędzia, bez treści YAML i JSON.

Dlaczego poprawny YAML nie daje się zamienić na JSON?

Nie każdą wartość YAML można przedstawić w JSON: konwersję zatrzymują między innymi tagi !Ref, !!timestamp i !!binary, wartości .inf i .nan oraz listy lub mapy użyte jako klucze. Narzędzie odrzuca też powtórzone klucze zamiast nadpisywać dane. Komunikat wskazuje linię i kolumnę problemu.

Jaki jest maksymalny rozmiar pliku YAML?

Limit wynosi 10 MB i dotyczy zarówno plików, jak i wklejonego tekstu. Pliki muszą być zapisane w UTF-8; pliki binarne są odrzucane. Maksymalna głębokość zagnieżdżenia to 1000, a limit po rozwinięciu aliasów wynosi 1 000 000 wartości.