YAML kwa Kigeuzi cha JSON
Ubadilishaji wa haraka na salama wa YAML hadi JSON. Ni kamili kwa faili za usanidi na uchambuzi wa data.
Ubadilishaji wa haraka na salama wa YAML hadi JSON. Ni kamili kwa faili za usanidi na uchambuzi wa data.
YAML na JSON ni miundo inayohusiana kwa karibu - JSON kitaalamu ni kitengo kidogo cha YAML 1.2 - na kubadilisha kati yao kwa kawaida ni moja kwa moja. YAML inaongeza vipengele vinavyofaa binadamu ambavyo JSON haina: maoni, mistari mingi bila kutoroka, marejeleo ya nanga na lakabu, nukuu rahisi zaidi, na muundo unaotegemea ujongezaji unaofanana na mpangilio wa hati asili. Hii inafanya YAML kuwa chaguo maarufu la faili za usanidi (Kubernetes inaonyesha, utiririshaji wa Vitendo vya GitHub, Utungaji wa Docker) huku JSON ikitawala upakiaji wa API.
Kubadilisha YAML hadi JSON kwa kawaida humaanisha kuacha ziada ya YAML ambayo ni rafiki kwa binadamu ili kubadilishana na umbizo ambalo mashine huchanganua kwa urahisi zaidi na hilo ndilo lingua franca ya API za HTTP. Maoni yametupwa (JSON haina). Marejeleo ya nanga hutatuliwa katika maadili yao ya marejeleo. Mistari ya mistari mingi inaporomoka hadi mifuatano ya kawaida ya JSON yenye mistari mipya iliyopachikwa.
Kigeuzi hiki huchanganua YAML kwa kutumia js-yaml, maktaba ya YAML inayotumika sana katika JavaScript. Pato hutolewa kwa kutumia JSON.stringify na ujongezaji wa hiari. Ubadilishaji hushughulikia sintaksia yote ya kawaida ya YAML 1.2 ikijumuisha mtindo wa mtiririko, mtindo wa kuzuia, koleo, mifuatano, michoro, nanga, lakabu na aina za kawaida za lebo.
API nyingi na mazingira mengi ya programu yanatarajia JSON. Faili za usanidi zilizoandikwa katika YAML zinahitaji kubadilishwa hadi JSON wakati wa kuunganishwa na msimbo au huduma zinazokubali JSON pekee. Zana za JSON pia ziko nyingi zaidi: jq, JSON Path, JSON Schema, na mfumo mpana wa ikolojia wa vithibitishaji na vibadilishaji transfoma vyote huchukulia ingizo la JSON.
JSON pia haina utata kwa njia YAML sio. Unyumbulifu wa YAML huunda mshangao wa uchanganuzi - mifuatano kama vile 'hapana' kuchanganua kama uwongo wa boolean katika YAML 1.1, mifuatano ya toleo ikichanganuliwa kama inavyoelea, hitilafu za ujongezaji huleta mabadiliko kimya ya muundo. Kubadilisha hadi JSON kunafanya data isisitishe kuwa fomu isiyo na utata.
Bandika YAML, upate JSON.
js-yaml hutekeleza YAML 1.2 ikiwa na usaidizi wa hiari wa vitendawili vya YAML 1.1 (suala la 'hapana'-kama-uongo, nambari za oktali bila kiambishi awali cha 0o). Kichanganuzi hutoa mti wa kitu cha JavaScript kwa kutumia aina asili: nambari, kamba, booleans, null, safu, na vitu wazi.
JSON.stringify inasawazisha mti wa kitu hadi JSON. Ujongezaji wa hiari hutoa pato lililochapishwa vizuri; bila hivyo matokeo ni laini ya mstari mmoja JSON. Thamani maalum (NaN, Infinity, undefined) si JSON halali; kigeuzi huwashurutisha kubatilisha ilipo.
Kesi za ukingo: Mihuri ya muda ya YAML huwa mifuatano ya ISO-8601 katika JSON. Data ya binary ya YAML (base64-iliyosimbwa) inakuwa kamba. Nanga na lakabu hutatuliwa kuwa thamani rudufu katika JSON, kwa kuwa JSON haina syntax ya marejeleo.