Przejdź do treści

Konwersja formatu YAML do JSON — Numio

Analizuje jeden dokument YAML za pomocą biblioteki yaml (schemat podstawowy YAML 1.2) i wyświetla go jako JSON z wcięciem. Komentarze są usuwane, kotwice i aliasy są rozwijane, a wartości takie jak tak lub 2024-01-01 pozostają ciągami znaków.

Wysyłanie ustawień zapisanych w YAML do walidatora schematu API lub JSON, który akceptuje tylko JSON.

YAML

Kiedy go używać

  • Wysyłanie ustawień zapisanych w YAML do walidatora schematu API lub JSON, który akceptuje tylko JSON.
  • Sprawdzenie, jak faktycznie jest wpisany plik CI lub Kubernetes, np. czy wersja jest ciągiem znaków, czy liczbą.

Jak używać

  1. Wklej pojedynczy dokument YAML lub załaduj plik .yaml/.yml.
  2. Jeśli pojawi się błąd, sprawdź wcięcia, zduplikowane klucze i --- separatory w raportowanym wierszu.
  3. Przejrzyj ciągi i liczby w wynikach JSON, a następnie skopiuj je.

Wejście YAML

# deployment settings
service: billing-api
replicas: 2
version: "1.10"
enabled: yes
ports:
  - 80
  - 443
env:
  LOG_LEVEL: info

JSON

{
  "service": "billing-api",
  "replicas": 2,
  "version": "1.10",
  "enabled": "yes",
  "ports": [
    80,
    443
  ],
  "env": {
    "LOG_LEVEL": "info"
  }
}

Szczegóły i ograniczenia

Analizowanie odbywa się w przeglądarce. Dane wyjściowe to zawsze 2 spacje JSON; nie ma opcji minifikacji.

Obowiązują zasady YAML 1.2: tak/nie/włączone/wyłączone to ciągi znaków, a nie wartości logiczne, a daty bez cudzysłowu pozostają ciągami znaków. 0o17 jest ósemkowe (15).

Klucze scalania (<<: *anchor) nie są łączone; pojawiają się jako dosłowny klawisz „<<”. Zduplikowane klucze w jednym mapowaniu są błędem.

Liczby całkowite powyżej 2^53 tracą precyzję w JSON. Cytuj długie identyfikatory w YAML.

FAQ

Czy może przekonwertować plik zawierający kilka dokumentów oddzielonych ---?

Nie. Wiele dokumentów powoduje błąd "Source contains multiple documents". Wklejaj jeden dokument naraz. Pojedynczy początkowy --- jest dozwolony.

Dlaczego enabled: yes jest ciągiem znaków w JSON?

Parser jest zgodny z YAML 1.2, gdzie tylko true i false są wartościami logicznymi. Użyj true/false, jeśli potrzebujesz wartości logicznej JSON.

Czy obsługiwane są kotwice i aliasy?

Tak. Alias ​​taki jak *base jest zastępowany kopią zakotwiczonej wartości. Jednak klucz scalający YAML 1.1 << nie jest stosowany.

Specyfikacje i referencje