Kigeuzi cha Bure

JSON kwa Kibadilishaji cha YAML

Badilisha muundo wa JSON uwe safi umbizo la YAML. Inafaa kwa maonyesho ya Kubernetes na usanidi wa wingu.

Au

Kuhusu zana hii

Kutoka JSON hadi YAML ni juu ya kufanya data isomeke zaidi kwa wanadamu. Miundo yote miwili inaelezea aina zile zile za miundo - vitu/ramani, safu/mifuatano, mikondo - lakini sintaksia inayotegemea ujongezaji ya YAML, nukuu ya hiari, na usaidizi wa maoni hurahisisha kuchanganua na kuhariri kwa mkono. Faili za usanidi ni kesi ya utumizi ya kisheria: Maonyesho ya Kubernetes, utiririshaji wa kazi wa CI, Vitabu vya kucheza vya Ansible, na zana zingine nyingi zilichagua YAML haswa kwa sababu wahariri wao msingi ni wanadamu.

Kigeuzi hiki hutumia js-yaml kusawazisha kipengee cha JSON kilichochanganuliwa kuwa YAML. Matokeo huhifadhi muundo wa data haswa wakati wa kutumia kanuni za YAML: ujongezaji kwa ajili ya kuweka kiota, orodha za safu, jozi za thamani-msingi kwa sifa za kitu. Unukuu mkali wa JSON umelegezwa; ni kamba tu zilizo na herufi maalum au zinazofanana na aina zingine ndizo zilizonukuliwa kwenye matokeo.

Ugeuzaji ni kuhifadhi habari isipokuwa pale YAML inapoongeza udhihirisho ambao JSON hakuwa nao. Maoni hayawezi kujengwa upya (JSON haikuwa na). Marejeleo ya nanga na lakabu yanaweza kubana miundo inayorudiwa lakini haitolewi kiotomatiki; matokeo yanapanua marejeleo yote ndani ya mstari.

Kwa nini Ubadilishe JSON kuwa YAML?

YAML inasomeka zaidi kuliko JSON kwa usanidi wa wanadamu wa kuhariri. Ujongezaji huchukua nafasi ya kuweka kiota cha brace, manukuu ni ya hiari kwa mifuatano rahisi, na maoni yanaweza kuandika mipangilio isiyo dhahiri. Kwa faili ambazo wanadamu hudumisha - usanidi wa programu, muundo-msingi-kama-msimbo, tengeneza mabomba - YAML karibu kila mara ndiyo umbizo sahihi la lengwa.

Zana za kisasa za miundombinu hupendelea sana YAML. Kubernetes, Chati za Helm, Ansible, GitHub Actions, GitLab CI, Docker Compose, na zana zingine nyingi hupendelea au kuhitaji YAML. Kubadilisha mauzo ya JSON kutoka kwa mfumo mmoja hadi usanidi wa YAML kwa mwingine ni hatua ya ujumuishaji ya kawaida.

Jinsi ya kutumia

Bandika JSON, upate YAML.

  1. Ongeza JSON yako: Bandika maandishi ya JSON au udondoshe faili. Ingizo lazima liwe JSON halali; kigeuzi hakijaribu kuchanganua ingizo kama la JSON ambalo linakiuka maalum.
  2. Chagua chaguzi: Saizi chaguomsingi za kujongeza kwa nafasi 2, mwafaka wa YAML unaojulikana zaidi. Mtindo wa mtiririko (unaofanana na JSON) dhidi ya mtindo wa kuzuia (kulingana na ujongezaji) hugeuza mwonekano wa pato - kizuizi ni chaguo-msingi kinachofaa binadamu.
  3. Geuza: Kitendaji cha utupaji cha js-yaml husawazisha mti wa JSON uliochanganuliwa hadi YAML. Kunukuu kwa kamba kunatumika pale tu inapobidi; masharti magumu yanasalia kusomeka.
  4. Pakua au nakili: Hifadhi kama .yml au nakili kwenye ubao wa kunakili. Matokeo ni YAML 1.2 halali tayari kwa mtumiaji yeyote wa YAML.

Kesi za Matumizi ya Kawaida

Maelezo ya Kiufundi

Kitendaji cha utupaji cha js-yaml hutembea mti wa kitu cha JavaScript na kutoa YAML kwa kutumia umbizo linaloweza kusanidiwa. Ujongezaji wa kina, upana wa mstari, kiwango cha juu cha mtindo wa mtiririko, na utunzaji wa nukuu zote ni vigezo. Mipangilio chaguo-msingi huzalisha YAML ya mtindo wa block na ujongezaji wa nafasi 2, mkusanyiko unaojulikana zaidi.

Kunukuu kwa kamba hufuata sheria za YAML: mifuatano inayofanana na aina nyingine (nambari, booleans, null, tarehe) imenukuliwa ili kulazimisha tafsiri ya mfuatano; kamba zilizo na wahusika maalum (koloni, hashes, dashi zinazoongoza) zinanukuliwa; tungo rahisi za alfabeti zimeachwa bila kunukuliwa.

Pato linaoana na YAML 1.2 na huchanganuliwa kwa usafi na js-yaml, PyYAML, na maktaba zingine kuu za YAML. Safari za kwenda na kurudi zisizo na uwezo (JSON → YAML → JSON) huhifadhi data, ingawa uwakilishi wa YAML huchagua umbizo la kisheria ambalo linaweza kutofautiana na sawia lililoandikwa kwa mkono.

Mazoea Bora

Maswali yanayoulizwa mara kwa mara

Je, kubadilisha JSON hadi YAML kubadilisha maudhui?
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 utumie umbizo la YAML?
YAML ni maarufu kwa faili za usanidi kwa sababu inasomeka sana na sintaksia ndogo. Ni kiwango cha Docker Compose, Kubernetes, Vitendo vya GitHub, na zana nyingi za CI/CD.
Je, kibadilishaji kinashughulikia miundo ya JSON iliyowekwa kiota au changamano?
Ndiyo. Zana huchanganua kwa usahihi vitu vilivyoorodheshwa, safu, na aina zote za data za JSON, kuhifadhi muundo kamili wa data katika towe la YAML.
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.
Vipi kuhusu nyuzi zilizo na herufi maalum?
js-yaml inazinukuu moja kwa moja. Mifuatano iliyo na koloni, heshi, au deshi zinazoongoza zimefungwa kwa nukuu ili kuweka YAML ikiwa imeundwa vizuri.
Je, data yangu imepakiwa kwenye seva?
Hapana. Ubadilishaji unaendeshwa katika kivinjari chako kwa kutumia js-yaml.
Je, ninaweza kusafiri na kurudi JSON hadi YAML na kurudi?
Ndiyo. JSON → YAML → JSON huhifadhi data kimuundo. Agizo kuu la JSON lililobadilishwa linalingana na ingizo.
Ukubwa wa juu zaidi wa kuingiza ni upi?
Hadi 50 MB. js-yaml hushughulikia faili za usanidi wa kawaida papo hapo.