UltKit

Kibadilishaji YAML kuwa JSON

Geuza faili za usanidi za YAML, vipimo vya OpenAPI na faili za CI kuwa JSON inayosomwa na kichanganuzi, API au kithibitishaji chochote cha schema. Pakia faili za .yaml au .yml, kisha pakua JSON yenye ujongezo.

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

    Pakia faili za YAML

    Ongeza faili za .yaml au .yml, hadi 20 kwa wakati mmoja na MB 95 kila moja. Majina asili yanabaki; faili za JSON hupata majina yaleyale yenye kiendelezi kipya.

  2. 2

    Chagua yenye ujongezo au iliyobanwa

    Panga kwa usomaji rahisi imewashwa, ambayo huweka JSON katika mpangilio wa mistari yenye nafasi ili isomeke na ikaguliwe kwa urahisi. Izime chini ya Mipangilio ya hali ya juu ili kupata faili ya mstari mmoja ya kubandika kwenye mwili wa ombi.

  3. 3

    Badilisha na utumie

    Bonyeza Badilisha kuwa JSON, pakua, kisha toa faili kwa API, kithibitishi au hati iliyoihitaji.

Kwa nini wasanidi programu hubadilisha YAML kuwa JSON

YAML imeandikwa kwa ajili ya watu: nafasi za mwanzo badala ya mabano, maoni, na hakuna nukuu kuzunguka maandishi mengi. Ndiyo maana ni muundo wa manifest za Kubernetes, mtiririko wa GitHub Actions, faili za Docker Compose na maelezo ya OpenAPI ambayo timu huhariri kwa mkono. JSON imeandikwa kwa ajili ya programu. Kila lugha ina kichanganuzi cha JSON kwenye maktaba yake ya kawaida, vivinjari huichanganua moja kwa moja, na API nyingi za HTTP hazikubali kingine.

Kwa hiyo ubadilishaji hutokea mpakani. Mhandisi wa jukwaa hupitisha manifest kupitia jq, inayosoma JSON pekee. Msanidi wa backend hutuma maelezo ya OpenAPI kwa kizalishaji cha msimbo kinachotaka JSON. Mjaribu hupakia data ya majaribio iliyoandikwa kwa YAML kwenye seti ya majaribio ya JavaScript. Katika kila hali YAML hubaki chanzo cha ukweli na JSON ni zao la ujenzi. Kwa saraka nzima ya feed au usafirishaji badala ya usanidi, XML kuwa JSON hushughulikia muundo wa zamani wa alama kwa njia hiyohiyo.

Jinsi YAML na JSON zilivyokua pamoja

YAML ilipendekezwa kwanza na Clark Evans
2001
YAML 1.2 ilifanya JSON kuwa sehemu ndogo ya YAML
2009
RFC 8259, kiwango cha sasa cha JSON
2017
Toleo la YAML 1.2.2 lilichapishwa
2021

Kinachotokea kwa vipengele vya YAML pekee ndani ya JSON

Anchor (&defaults) na alias zake (*defaults) huwezesha YAML kutumia tena kizuizi. JSON haina marejeleo, kwa hivyo kila alias hubadilishwa na nakala kamili ya kizuizi kilicho na anchor.

  • JSON inaweza kuwa ndefu zaidi kwa kiasi kinachoonekana kuliko YAML
  • Merge keys (<<: *defaults) hupanuliwa kwa njia hiyohiyo
Usanidi mdogo wa YAML kama JSON iliyopangwa kwa usomaji
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Ukweli kuhusu miundo ya YAML na 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

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

Watu hubadilisha YAML kuwa JSON pale usanidi au maelezo yaliyoandikwa kwa ajili ya binadamu yanapohitaji kulisha mashine: ombi la API, kithibitishi cha schema au zana isiyo na kichanganuzi cha YAML.

Maswali kuhusu kibadilishaji YAML kuwa JSON

Kwa nini nibadilishe YAML kuwa JSON ikiwa zinabeba data ileile?

Kwa sababu zana nyingi husoma moja tu kati ya hizo. Visomaji vya JSON vinakuja na kila lugha ya programu na kivinjari, ilhali YAML inahitaji maktaba ya ziada. Miili ya maombi ya REST API, vithibitishi vya JSON Schema, jq, na faili kama package.json au manifest.json ya kiendelezi cha kivinjari zote zinatarajia JSON.

Maoni yangu ya YAML yanakuwaje?

Huondolewa. RFC 8259 haitoi JSON sintaksia ya maoni, kwa hivyo mistari inayoanza na # haina mahali pa kwenda. Weka faili ya YAML kama chanzo chenye maelezo na uichukulie JSON kama nakala iliyozalishwa ambayo unaweza kuizalisha upya wakati wowote.

Kwa nini NO au off vimegeuka kuwa false?

Vichanganuzi vinavyofuata YAML 1.1 husoma yes, no, on na off kama thamani za boolean, hivyo msimbo wa nchi kama NO kwa Norway unaweza kuwa false. YAML 1.2 inaweka boolean kuwa true na false pekee, lakini si kila zana inaifuata. Weka thamani hizo ndani ya nukuu kwenye YAML, kama "NO", nazo zitabaki maandishi kwenye JSON.

Je, ninaweza kubadilisha kiolezo cha CloudFormation kilichoandikwa kwa YAML?

AWS CloudFormation inakubali miundo yote miwili, lakini tagi fupi kama !Ref na !GetAtt zipo kwenye YAML pekee. Violezo vya JSON huziandika kama kazi kamili, {"Ref": "MyBucket"} au {"Fn::GetAtt": [...]}. Andika upya tagi fupi katika umbo refu kabla ya kubadilisha ili kiolezo cha JSON kibaki halali.

Ninawezaje kubadilisha kwa upande mwingine?

Tumia JSON kuwa YAML. Ndiyo mwelekeo wa kawaida pale jibu la API au faili iliyozalishwa inapohitaji kuwa faili ya usanidi inayosomeka kwenye hazina ya msimbo.