YAML → JSON konverter

Illessz be YAML-t (Kubernetes manifesteket, Docker Compose-t, CI-konfigurációkat), és azonnal tiszta JSON-t kapsz. A hibák a pontos sort mutatják, jelölővel.

A böngésződben futNincs regisztrációNincs feltöltés

JSON kimenet

Hogyan használd: YAML → JSON

  1. Illessz be YAML-t a bal oldali mezőbe, vagy nyiss meg egy .yaml/.yml fájlt.
  2. A JSON gépelés közben megjelenik jobb oldalon. Válassz 2 szóközt, 4 szóközt vagy tabot a kimenethez.
  3. Jelöld be a Kulcsok rendezése opciót a kulcsok ábécérendbe rendezéséhez. Ez a konfigurációk összehasonlításánál segít.
  4. Ha a YAML érvénytelen, az állapotsor mutatja a sort és az oszlopot, a hibás sorok pedig alatta jelennek meg egy ^ jelölővel.
  5. Másold ki vagy töltsd le a JSON-t, vagy nyomd meg a Csere gombot, hogy visszaalakítsd YAML-lé.

Hogyan képeződik le a YAML JSON-ra?

A JSON a YAML 1.2 részhalmaza, így minden YAML mapping JSON objektum, minden sequence tömb, a skalárok pedig stringek, számok, logikai értékek vagy null lesznek. A csak YAML-ben létező funkciókat az átalakítás feloldja:

  • A kommentek (# …) kimaradnak, mert a JSON-ban nincsenek kommentek.
  • Az anchorok és aliasok (&base, *base, <<: *base) teljes másolatokká bomlanak ki.
  • Az időbélyegek, például a 2024-01-02, ISO 8601 stringekké válnak.
  • A többsoros stringek (| literal és > folded blokkok) \n escape-eket tartalmazó hagyományos stringek lesznek.

Több dokumentumos YAML

Egyetlen fájl több, --- jellel elválasztott YAML dokumentumot is tartalmazhat, ahogy a Kubernetes manifesteknél gyakori. A JSON-ban ennek nincs megfelelője, ezért a konverter dokumentumonként egy elemet tartalmazó JSON tömböt ad vissza, és ezt az állapotsorban jelzi. Egy magányos, záró --- figyelmen kívül marad.

YAML 1.1 és 1.2 buktatók

Ez a konverter a jelenlegi specifikációt, a YAML 1.2-t követi. Sok régebbi eszköz (PyYAML, a Ruby Psych, egyes Kubernetes- és Ansible-verziók) még YAML 1.1 szerint olvas, ahol a szabályok eltérnek:

  • A „norvég probléma”: YAML 1.1-ben a country: no jelentése false, így Norvégia NO országkódja eltűnik. Ugyanez igaz a yes, on, off, y és n értékre. A YAML 1.2 csak a true és a false értéket tekinti logikai értéknek.
  • Oktális számok: a 0755 1.1-ben oktális, 1.2-ben viszont sima decimális szám, ott a 0o755 az oktális forma. A biztonság kedvéért tedd idézőjelbe a fájljogosultságokat.
  • Hatvanas számrendszerű számok: 1.1-ben a 22:30 az 1350-es számként értelmeződhet. Tedd idézőjelbe az időpontokat és a portleképezéseket, például "8080:80".

A JSON → YAML irány automatikusan idézőjelbe teszi a kétértelmű stringeket ('no', 'on', 'y'), így az előállított YAML mindkét verzióban ugyanazt jelenti.

Gyakran ismételt kérdések

Feltöltődik valahova a YAML-em?
Nem. A feldolgozás a böngésződben történik a nyílt forráskódú js-yaml könyvtárral. A titkokat vagy belső hostneveket tartalmazó konfigurációk sosem hagyják el a gépedet.
Miért kapok „bad indentation” hibát a YAML-emre?
A YAML beágyazását szóközök határozzák meg, a behúzáshoz tabot nem szabad használni. Ügyelj rá, hogy a testvérkulcsok pontosan egy vonalba essenek, és a listaelemek (-) következetesen legyenek behúzva a szülőkulcsuk alatt.
Mi történik a YAML kommentekkel?
Eltávolításra kerülnek. A JSON-nak nincs kommentszintaxisa, így a kommentek nem vihetők át. A YAML-re való visszaalakítás sem állítja vissza őket.
Miért maradt string a <code>no</code>?
Ez az eszköz a YAML 1.2-t követi, amelyben csak a true/false logikai érték. A régebbi YAML 1.1 feldolgozók a no, yes, on és off értéket logikai értékké alakítanák (a „norvég probléma”).
Átalakíthatok egy több erőforrást tartalmazó Kubernetes manifestet?
Igen. Minden --- jellel elválasztott erőforrás a kimeneti JSON tömb egy-egy eleme lesz, használatra készen a jq vagy a kubectl apply -f - számára, amely JSON listákat is elfogad.

Kapcsolódó eszközök