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
Hogyan használd: YAML → JSON
- Illessz be YAML-t a bal oldali mezőbe, vagy nyiss meg egy
.yaml/.ymlfájlt. - A JSON gépelés közben megjelenik jobb oldalon. Válassz 2 szóközt, 4 szóközt vagy tabot a kimenethez.
- 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.
- 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. - 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)\nescape-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: nojelentésefalse, így NorvégiaNOországkódja eltűnik. Ugyanez igaz ayes,on,off,yésnértékre. A YAML 1.2 csak atrueés afalseértéket tekinti logikai értéknek. - Oktális számok: a
07551.1-ben oktális, 1.2-ben viszont sima decimális szám, ott a0o755az 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:30az 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?
Miért kapok „bad indentation” hibát a YAML-emre?
-) következetesen legyenek behúzva a szülőkulcsuk alatt.Mi történik a YAML kommentekkel?
Miért maradt string a <code>no</code>?
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?
--- 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.