Kigeuzi cha Bure

YAML kwa Kigeuzi cha JSON

Ubadilishaji wa haraka na salama wa YAML hadi JSON. Ni kamili kwa faili za usanidi na uchambuzi wa data.

Au

Kuhusu zana hii

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.

Kwa nini Ubadilishe YAML kuwa JSON?

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.

Jinsi ya kutumia

Bandika YAML, upate JSON.

  1. Ongeza YAML yako: Bandika maandishi ya YAML kwenye eneo la ingizo au udondoshe faili ya .yml/.yaml. js-yaml inakubali sintaksia kamili ya YAML 1.2.
  2. Geuza: js-yaml huchanganua YAML kuwa kipengee cha JavaScript, na JSON.stringify huisajili kwa ujongezaji wa nafasi mbili. Maoni hudondoshwa, nanga hutatuliwa, na aina maalum za YAML (muhuri wa muda, data ya mfumo shirikishi) hubadilishwa kuwa uwakilishi unaooana na JSON.
  3. Kagua matokeo: Thibitisha kuwa muundo wa JSON unalingana na ulivyotarajia. Linganisha dhidi ya chanzo cha YAML ili kuona mahali popote ambapo uchapaji huru wa YAML ulitoa thamani za JSON zisizotarajiwa.
  4. Pakua au nakili: Hifadhi kama .json au nakili kwenye ubao wa kunakili. Matokeo ni JSON halali kutumiwa na kichanganuzi chochote cha JSON.

Kesi za Matumizi ya Kawaida

Maelezo ya Kiufundi

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.

Mazoea Bora

Maswali yanayoulizwa mara kwa mara

Kubadilisha YAML hadi JSON kunabadilisha yaliyomo?
Maudhui yanahifadhiwa kwa usahihi iwezekanavyo. Hata hivyo, baadhi ya vipengele vya umbizo mahususi huenda visiwe na vilingana vya moja kwa moja, kwa hivyo tofauti ndogo za umbizo zinaweza kutokea.
Kwa nini ubadilishe data kuwa umbizo la JSON?
JSON ndio umbizo la kawaida la data kwa API za wavuti na programu za JavaScript. Inaweza kusomeka na binadamu, inaungwa mkono sana na lugha za programu, na ina sintaksia rahisi kuliko XML.
Je, kigeuzi kinashughulikia miundo ya YAML iliyowekwa kiota au changamano?
Ndiyo. Zana huchanganua kwa usahihi vitu vilivyoorodheshwa, safu, na aina zote za data za YAML, kuhifadhi muundo kamili wa data katika toleo la JSON.
Je, ubadilishaji huu ni salama na wa faragha?
Ndiyo. Uchakataji wote hufanyika kwenye kivinjari chako. Data yako haiachi kamwe kwenye kifaa chako - hakuna upakiaji wa seva, hakuna usindikaji wa wingu, hakuna mkusanyiko wa data.
Je, YAML itasafiri kwenda na kurudi kwa usafi?
Kimuundo ndio ikiwa utatoa tena JSON kwa YAML. Maoni na muundo wa nanga hupotea; maadili ghafi yanahifadhiwa.
Je, data yangu imepakiwa kwenye seva?
Hapana. js-yaml inaendeshwa katika kivinjari chako.
Ukubwa wa juu ni nini?
Hadi 50 MB. js-yaml hushughulikia faili za usanidi wa kawaida papo hapo; YAML kubwa sana inaweza kuchukua muda unaoonekana kuchanganua.
Je, inasaidia YAML ya hati nyingi?
YAML inasaidia hati nyingi katika faili moja ikitenganishwa na ---. Kigeuzi huchakata hati ya kwanza kwa chaguo-msingi; kwa utunzaji wa hati nyingi, gawanya YAML kwanza.