Teknobench

Konvertitur JSON għal YAML

Ikkonverti JSON għal YAML u YAML għal JSON fil-brawżer tiegħek, b’anchors, merge keys u fajls ta’ diversi dokumenti appoġġjati. Xejn ma jittella’.

Konverżjoni

Kif tuża l-konvertitur JSON għal YAML

  1. Agħżel id-direzzjoni: JSON → YAML jew YAML → JSON.
  2. Waħħal id-data tiegħek, jew ikklikkja Iftaħ fajl biex tiftaħ fajl .json, .yaml jew .yml (sa 10 MB).
  3. Agħżel l-Indentazzjoni (2 jew 4 spazji) u, jekk trid, Ordna ċ-ċwievet alfabetikament.
  4. Ikklikkja Ikkonverti, jew kompli ikteb: ir-riżultat jiġi aġġornat awtomatikament. Jekk l-input huwa invalidu, il-messaġġ tal-iżball jagħti l-linja u l-kolonna tal-problema.
  5. Ikkopja jew niżżel ir-riżultat. Aqleb id-direzzjoni jibgħat l-output lura fl-input biex tikkonvertih fid-direzzjoni l-oħra.

JSON u YAML: l-istess data, sintassi differenti

Il-YAML fil-prattika huwa superset tal-JSON: kull dokument JSON jiddeskrivi data li l-YAML jista’ jesprimi, u l-YAML iżid sintassi aktar ħafifa li hija aktar faċli għan-nies biex jaqrawha u jeditjawha. Għalhekk il-manifests tal-Kubernetes, il-fajls tad-Docker Compose, il-GitHub Actions u l-pipelines tal-GitLab CI, il-playbooks tal-Ansible u l-ispeċifikazzjonijiet OpenAPI normalment jinkitbu bil-YAML, filwaqt li l-APIs u l-programmi jiskambjaw JSON.

L-istess data fiż-żewġ formati:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

JSON → YAML

Il-konvertitur jikteb YAML bl-istil tal-blokki: ċavetta waħda f’kull linja, listi bi trattini, u oġġetti nested indentati. L-istrings twal qatt ma jintwew, u l-istrings b’diversi linji jużaw l-istil litterali | biex it-tmiem tal-linji jinżamm eżattament. L-istrings li l-YAML inkella jaqra bħala tip ieħor jitqiegħdu bejn il-kwotazzjonijiet: "yes", "1.0" jew "null" jibqgħu strings wara round trip. Ordna ċ-ċwievet jordna ċ-ċwievet ta’ kull oġġett alfabetikament, li jagħmel żewġ fajls ta’ konfigurazzjoni aktar faċli biex jitqabblu.

YAML → JSON

Il-YAML jinqara bl-iskema bażika tal-YAML 1.2, l-istess regoli li jużaw il-biċċa l-kbira tal-għodod moderni:

  • true/false, numri u null (jew ~) isiru valuri JSON; yes, no, on u off jibqgħu strings, kif teħtieġ l-ispeċifikazzjoni YAML 1.2.
  • L-Anchors u l-aliases (&base, *base) jiġu estiżi, u l-merge keys (<<: *base), komuni fil-fajls CI, huma appoġġjati.
  • Fajl b’diversi dokumenti separati b’--- isir array JSON b’element wieħed għal kull dokument, u messaġġ jgħidlek kemm ingħaqdu.
  • Il-kummenti jitneħħew, għax il-JSON m’għandux kummenti.
  • .inf u .nan m’għandhomx ekwivalenti JSON; jinkitbu bħala l-istrings "Infinity" u "NaN".

Biex tipproteġi l-brawżer tiegħek minn fajls “billion laughs”, li fihom ftit aliases jespandu f’biljuni ta’ valuri, dokument li jespandi għal aktar minn miljun valur jiġi miċħud.

Żbalji komuni tal-YAML

  • Tabs għall-indentazzjoni: il-YAML jippermetti biss spazji.
  • Indentazzjoni inkonsistenti: l-oġġetti tal-istess lista jew oġġett iridu jibdew fl-istess kolonna.
  • Spazju nieqes wara d-dwieta (:): key:value huwa string waħda, filwaqt li key: value huwa par ċavetta-valur.
  • Karattri speċjali mingħajr kwotazzjonijiet: valur li jibda b’@, backtick, *, & jew !, jew li fih : jew #, irid jitqiegħed bejn kwotazzjonijiet.

Mistoqsijiet frekwenti

Il-fajl tiegħi jintbagħat lil server?

Le. Il-konverżjoni taħdem fil-brawżer tiegħek, u l-fajls ta’ konfigurazzjoni, is-sigrieti jew id-data API tiegħek qatt ma jitilqu mill-kompjuter tiegħek.

Għaliex “yes” u “no” ma jinbidlux f’booleans?

Mill-YAML 1.2 ’il quddiem, true u false biss huma booleans. Parsers eqdem tal-YAML 1.1 kienu jittrattaw yes, no, on u off bħala booleans, li kkawża l-famuż “problema tan-Norveġja” (il-kodiċi tal-pajjiż NO jinqara bħala falz). Din l-għodda issegwi l-YAML 1.2.

Il-kummenti tal-YAML jinżammu?

Le. Il-JSON m’għandux kummenti, għalhekk jintilfu f’YAML → JSON. Meta tikkonverti JSON → YAML, tista’ iżżid kummenti mar-riżultat wara.

Nista’ nikkonverti fajl tal-Kubernetes b’diversi riżorsi?

Iva. Kull riżorsa separata b’--- issir element wieħed ta’ array JSON. Meta tikkonverti dak l-array lura għal YAML tikseb dokument wieħed li fih lista.

Il-konvertitur jibdel l-ordni taċ-ċwievet?

Le, ħlief jekk timmarka Ordna ċ-ċwievet: iċ-ċwievet iżommu l-ordni li jidhru fl-input tiegħek. L-eċċezzjoni waħda tiġi mill-JavaScript innifsu: ċwievet li huma numri sħaħ, bħal "10" jew "2", jitqiegħdu l-ewwel, f’ordni jitla’.