UltKit

Konvertor JSON do YAML

Prepíšte JSON do YAML, ktorý sa dá ľahko čítať, kontrolovať a komentovať. Nahrajte súbory .json a získate odsadené súbory .yaml s rovnakými kľúčmi, hodnotami aj poradím, pripravené na vloženie do repozitára.

Prevodník dát

alebo sem presuňte súbory CSV, TSV, TXT … ·

Max. 95 MB na súbor· Až 20 súborov· Odstránenie po 30 minútach

Výstup

Súbory sa spracúvajú na našich serveroch a po 30 minútach sa odstránia.

Ako používať tento nástroj

  1. 1

    Pridajte súbory JSON

    Nahrajte odpovede API, exportované nastavenia alebo vygenerované manifesty ako .json, najviac 20 súborov po 95 MB. Každý súbor musí obsahovať jednu platnú hodnotu JSON.

  2. 2

    Ponechajte predvolené nastavenia

    YAML je už vybraný v poli Previesť na. Pre konfiguračný súbor netreba nič meniť; výstup používa odsadenie dvoma medzerami.

  3. 3

    Preveďte a uložte do repozitára

    Stlačte Previesť na YAML, stiahnite súbory .yaml, pridajte komentáre tam, kde ich bude potrebovať ďalší čitateľ, a odošlite zmeny do repozitára.

Odpoveď

Ako previesť JSON na YAML?

Nahrajte súbor .json a stlačte Previesť na YAML. Objekty sa zmenia na odsadené bloky kľúč: hodnota, polia na zoznamy s pomlčkami a reťazce, ktoré by YAML mohol zle pochopiť, si zachovajú úvodzovky.

Prečo previesť JSON do YAML pri konfiguračných súboroch

Väčšinu JSON vytvára softvér: odpoveď API, export nastavení, výstup generátora. Väčšinu YAML udržiavajú ľudia. Prevod často označuje chvíľu, keď dáta prestanú byť strojovým výstupom a stanú sa niečím, čo tím vlastní, napríklad manifest nasadenia v Gite, pipeline CI alebo sada premenných Ansible.

Typický prípad: zavoláte cloudové API, dostanete 200-riadkový opis zdroja v JSON a chcete ho uchovať ako infraštruktúru v kóde. Prevod vám dá súbor bez zátvoriek a čiarok, kde zmena jedného riadka vytvorí rozdiel v jednom riadku a nezvyčajné hodnoty vysvetlíte v komentároch. To isté platí pre testovacie dáta a prekladové súbory, ktoré upravujú aj nevývojári. Ak namiesto toho potrebujete plochú tabuľku, napríklad pre tabuľkový procesor alebo report, lepšie sedí JSON do CSV.

Nástroje, ktorých konfiguračné súbory sú v YAML

Kde sa prevedený YAML zvyčajne používa
OrganizáciaPožiadavkaZdroj
GitHub ActionsWorkflowy sú v .github/workflows ako súbory .yml alebo .yamlGitHub Docs
GitLab CI/CDPipeline je definovaná v .gitlab-ci.yml v koreni repozitáraGitLab Docs
Docker ComposeSlužby sa opisujú v compose.yaml (predtým docker-compose.yml)Docker Docs
AnsiblePlaybooky a súbory s premennými sa píšu v YAMLAnsible Docs
KubernetesManifesty prijímajú JSON alebo YAML; dokumentácia a charty Helm používajú YAMLKubernetes

Príklad prevodu JSON do YAML so záludnými hodnotami

Výstup YAML pre {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: eshop-api
version: "1.10"
debug: false
tags:
  - web
  - eu
country: "NO"

Čo vám dáva YAML

  • Komentáre pomocou #
  • Kratšie rozdiely pri code review
  • Bez zátvoriek, čiarok a úvodzoviek na väčšine riadkov
  • Viacriadkový text pomocou blokových skalárov |

Na čo si dať pozor

  • Odsadenie má význam, preto zatúlaná medzera zmení štruktúru
  • Tabulátory na odsadenie nie sú povolené
  • Reťazce bez úvodzoviek sa môžu čítať ako čísla alebo logické hodnoty
  • Pomalšie a menej jednotné parsery ako pri JSON

Príklad ukazuje, prečo nestačí obyčajné nahradenie zátvoriek. Verzia 1.10 je v JSON reťazec; zapísaná v YAML bez úvodzoviek by sa čítala ako číslo 1.1. NO, kód ISO pre Nórsko, by parsery YAML 1.1, napríklad PyYAML, čítali ako false. Obe hodnoty si zachovajú úvodzovky, kým skutočné čísla a logické hodnoty zostanú bez nich.

Porovnanie JSON a YAML

JSON

JavaScript Object Notation

JSON je ľahký textový formát pre štruktúrované dáta, ktorý na začiatku 21. storočia spopularizoval Douglas Crockford a ktorý je normalizovaný ako RFC 8259 a ECMA-404. Pomocou jednoduchej, čitateľnej syntaxe vyjadruje objekty, polia, reťazce, čísla, booleovské hodnoty a null. Je predvoleným formátom webových API, konfiguračných súborov a výmeny dát medzi aplikáciami takmer v každom programovacom jazyku. Nemá vstavané komentáre, dátumy ani schémy a veľké vnorené súbory sa bez prehliadača ťažko čítajú.

Kompresia
–
Priehľadnosť
–
Animácia
–
Rok vzniku
2001 · Douglas Crockford
Konvertor JSON

YAML

YAML

YAML („YAML Ain't Markup Language“) je dátový formát vhodný pre ľudí, prvýkrát vydaný v roku 2001. Namiesto zátvoriek používa odsadenie, podporuje komentáre a je nadmnožinou JSON. Široko sa využíva na konfiguráciu v Docker Compose, Kubernetes, GitHub Actions a mnohých aplikáciách. Keďže závisí od medzier, dá sa ľahko pokaziť jedinou zle umiestnenou medzerou a niektoré hodnoty, napríklad „no“ alebo dátumy, sa môžu vyhodnotiť neočakávane.

Kompresia
–
Priehľadnosť
–
Animácia
–
Rok vzniku
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Konvertor YAML

JSON sa prevádza na YAML, keď sa vygenerované dáta alebo dáta z API majú stať konfiguračným súborom, ktorý ľudia udržiavajú, kontrolujú v pull requestoch a dopĺňajú komentármi.

Otázky o konvertore JSON do YAML

Je JSON už platný YAML?

V YAML 1.2 áno: revízia z roku 2009 vznikla tak, aby bol každý dokument JSON zároveň dokumentom YAML. JSON by ste mohli vložiť do súboru .yaml a väčšina nástrojov by ho prijala. Prevod ide o čitateľnosť: blokový štýl bez zátvoriek, úvodzoviek a čiarok je to, čo očakávajú recenzenti aj ďalší správca.

Prečo sú niektoré hodnoty v YAML v úvodzovkách?

Bez úvodzoviek by ich YAML prečítal ako iný typ. Verzia ako 1.10 by sa stala číslom 1.1 a yes alebo off by sa v starších parseroch mohli stať logickými hodnotami. Reťazce, ktoré vyzerajú ako čísla, dátumy či logické hodnoty, potrebujú úvodzovky, aby zostali reťazcami, preto ich dôkladný prevod zachová.

Môžem po prevode pridať komentáre?

Áno, a je to častý dôvod prevodu. Napíšte # a za to poznámku na koniec riadka alebo na samostatný riadok. JSON nemal ako vysvetliť, prečo je hodnota nastavená; YAML to dokáže, čo uľahčuje recenzie aj odovzdávanie práce.

Prečo môj YAML hlási chybu so znakom tabulátora?

Špecifikácia YAML zakazuje tabulátory na odsadenie; platia len medzery. Konvertor píše medzery, ale editor nastavený na vkladanie tabulátorov môže súbor pri ďalšej úprave pokaziť. Nastavte si editor, aby v súboroch .yaml používal medzery.

Prijme Kubernetes prevedený manifest?

kubectl číta JSON aj YAML, takže dáta sú rovnaké; verzia YAML je len to, čo používa väčšina dokumentácie, chartov Helm a code review. Ak neskôr potrebujete JSON späť pre jq alebo volanie API, YAML na JSON to vráti.