UltKit

Kibadilishaji JSON kuwa YAML

Andika upya JSON kama YAML ambayo watu wanaweza kuisoma, kuikagua na kuiwekea maoni. Pakia faili za .json upate .yaml iliyojongezwa yenye funguo, thamani na mpangilio uleule, tayari kuwekwa kwenye hazina ya msimbo.

Kibadilishaji cha Data

au buruta Faili za CSV, TSV, TXT … hapa ·

Hadi MB 95 kwa faili· Hadi faili 20· Hufutwa baada ya dakika 30

Matokeo

Faili huchakatwa kwenye seva zetu na kufutwa baada ya dakika 30.

Jinsi ya kutumia zana hii

  1. 1

    Ongeza faili za JSON

    Pakia majibu ya API, mipangilio iliyohamishwa au manifest zilizozalishwa kama .json, hadi faili 20 zenye ukubwa wa hadi MB 95 kila moja. Kila faili lazima iwe na thamani moja halali ya JSON.

  2. 2

    Acha mipangilio ya msingi

    YAML tayari imechaguliwa chini ya Badilisha kuwa. Hakuna kingine cha kubadilisha kwa faili ya usanidi; matokeo hutumia nafasi mbili za mwambaa wa ndani (indentation).

  3. 3

    Badilisha na uhifadhi kwenye hazina

    Bonyeza Badilisha kuwa YAML, pakua faili za .yaml, ongeza maoni pale msomaji anayefuata atakapoyahitaji, kisha uziweke kwenye hazina (commit).

Jibu

Nawezaje kubadilisha JSON kuwa YAML?

Pakia faili ya .json na ubonyeze Badilisha kuwa YAML. Vitu huwa vizuizi vya key: value vyenye mwambaa wa ndani, safu huwa orodha zenye vistari, na maandishi ambayo YAML inaweza kuyasoma vibaya hubaki na nukuu zake.

Kwa nini kubadilisha JSON kuwa YAML kwa faili za usanidi

JSON nyingi hutengenezwa na programu: jibu la API, usafirishaji wa mipangilio, matokeo ya kizalishi. YAML nyingi hutunzwa na watu. Ubadilishaji mara nyingi huashiria wakati data inapoacha kuwa matokeo ya mashine na kuwa kitu ambacho timu inamiliki, kama manifest ya usambazaji iliyohifadhiwa kwenye Git, mnyororo wa CI, au seti ya vigeu vya Ansible.

Mfano wa kawaida: unaita API ya wingu, unapata maelezo ya JSON ya mistari 200 ya rasilimali, na unataka kuyahifadhi kama msimbo wa miundombinu. Ubadilishaji hukupa faili isiyo na mabano na koma, ambapo badiliko la mstari mmoja huleta tofauti ya mstari mmoja na unaweza kueleza thamani za ajabu kwenye maoni. Hivyo hivyo kwa data za majaribio na faili za tafsiri zinazohaririwa na wasio watengenezaji programu. Unapohitaji jedwali tambarare badala yake, kwa lahajedwali au ripoti, JSON kuwa CSV inafaa zaidi.

Zana ambazo faili zake za usanidi ni YAML

Mahali ambapo YAML iliyobadilishwa huishia kwa kawaida
ShirikaShartiChanzo
GitHub ActionsMtiririko wa kazi uko katika .github/workflows kama faili za .yml au .yamlGitHub Docs
GitLab CI/CDMnyororo hufafanuliwa katika .gitlab-ci.yml kwenye mzizi wa hazinaGitLab Docs
Docker ComposeHuduma zinaelezwa katika compose.yaml (zamani docker-compose.yml)Docker Docs
AnsiblePlaybook na faili za vigeu huandikwa kwa YAMLAnsible Docs
KubernetesManifest hukubali JSON au YAML; nyaraka na chati za Helm hutumia YAMLKubernetes

Mfano wa JSON kuwa YAML wenye thamani zenye utata

Matokeo ya YAML kwa {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
# matokeo ya YAML
name: api
version: "1.10"
debug: false
tags:
  - web
  - eu
country: "NO"

Unachopata kwa YAML

  • Maoni kwa #
  • Tofauti fupi katika ukaguzi wa msimbo
  • Hakuna mabano, koma wala nukuu kwenye mistari mingi
  • Maandishi ya mistari mingi kwa | block scalars

Cha kuzingatia

  • Mwambaa wa ndani una maana, hivyo nafasi iliyopotea hubadilisha muundo
  • Tab haziruhusiwi kwa mwambaa wa ndani
  • Maandishi yasiyo na nukuu yanaweza kusomwa kama nambari au boolean
  • Vichanganuzi vilivyo polepole na visivyo sawa kuliko vya JSON

Mfano unaonyesha kwa nini kutafuta na kubadilisha mabano tu hakutoshi. Toleo 1.10 ni maandishi katika JSON; likiandikwa wazi katika YAML lingesomwa kama nambari 1.1. NO, msimbo wa ISO wa Norway, ungesomwa kama false na vichanganuzi vya YAML 1.1 kama PyYAML. Vyote viwili hubaki na nukuu zake, huku nambari na boolean halisi zikibaki bila nukuu.

Ulinganisho wa JSON na YAML

JSON

JavaScript Object Notation

JSON ni umbizo jepesi la maandishi kwa data iliyopangwa, lililoenezwa na Douglas Crockford mwanzoni mwa miaka ya 2000 na kusanifishwa kama RFC 8259 na ECMA-404. Linawakilisha vitu, safu, maandishi, namba, thamani za kweli/si kweli na null kwa sintaksia rahisi inayosomeka. Ni umbizo chaguomsingi la API za wavuti, faili za usanidi na ubadilishanaji wa data kati ya programu katika karibu kila lugha ya programu. Halina maoni, tarehe wala michoro ya muundo ndani yake, na faili kubwa zenye viwango vingi ni vigumu kusoma bila kitazamaji.

Ubanaji
–
Uwazi
–
Uhuishaji
–
Mwaka ulioanzishwa
2001 · Douglas Crockford
Kigeuzi cha JSON

YAML

YAML

YAML ("YAML Ain't Markup Language") ni umbizo la data rafiki kwa binadamu lililotolewa kwa mara ya kwanza mwaka 2001. Hutumia mwingilio badala ya mabano, inasaidia maoni, na ni juuseti ya JSON. Hutumika sana kwa usanidi katika Docker Compose, Kubernetes, GitHub Actions na programu nyingi. Kutegemea nafasi tupu kunafanya liharibike kwa urahisi kwa nafasi moja iliyowekwa vibaya, na baadhi ya thamani, kama "no" au tarehe, zinaweza kufasiriwa isivyotarajiwa.

Ubanaji
–
Uwazi
–
Uhuishaji
–
Mwaka ulioanzishwa
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Kigeuzi cha YAML

Watu hubadilisha JSON kuwa YAML wakati data iliyozalishwa au ya API inapohitaji kuwa faili ya usanidi ambayo binadamu hutunza, hukagua kwenye pull request na kuweka maoni.

Maswali kuhusu kibadilishaji JSON kuwa YAML

Je, JSON tayari ni YAML halali?

Chini ya YAML 1.2, ndiyo: toleo la mwaka 2009 liliandikwa ili kila hati ya JSON iwe pia hati ya YAML. Unaweza kubandika JSON kwenye faili ya .yaml na zana nyingi zitaikubali. Kubadilisha kunahusu usomekaji: mtindo wa vizuizi bila mabano, nukuu na koma ndio wakaguzi na mtunzaji anayefuata wanaotarajia.

Kwa nini baadhi ya thamani zimewekwa ndani ya alama za nukuu katika YAML?

Kwa sababu bila nukuu YAML ingezisoma kama aina nyingine ya data. Toleo kama 1.10 lingekuwa nambari 1.1, na yes au off zinaweza kuwa thamani za boolean katika vichanganuzi vya zamani. Maandishi yanayofanana na nambari, tarehe au boolean yanahitaji nukuu ili yabaki maandishi, kwa hiyo ubadilishaji makini huzihifadhi.

Je, ninaweza kuongeza maoni baada ya kubadilisha?

Ndiyo, na hiyo ni sababu ya kawaida ya kubadilisha. Andika # kisha maelezo yako mwishoni mwa mstari au kwenye mstari wake peke yake. JSON haikuwa na njia ya kueleza kwa nini thamani imewekwa hivyo; YAML inayo, na hilo hurahisisha ukaguzi na makabidhiano.

Kwa nini YAML yangu inashindwa kwa hitilafu ya herufi ya tab?

Vipimo vya YAML vinakataza tab kwa ajili ya mwambaa wa ndani; ni nafasi tu zinazohesabiwa. Kibadilishaji huandika nafasi, lakini kihariri kilichowekwa kuingiza tab kinaweza kuharibu faili wakati wa uhariri unaofuata. Weka kihariri chako kitumie nafasi kwa faili za .yaml.

Je, Kubernetes itakubali manifest iliyobadilishwa?

kubectl husoma JSON na YAML, kwa hiyo data ni ile ile kwa njia zote mbili; toleo la YAML ndilo linalotumiwa na nyaraka nyingi, chati za Helm na ukaguzi wa msimbo. Ukihitaji JSON tena baadaye kwa jq au ombi la API, YAML kuwa JSON hurudisha.