Olùyí YAML sí JSON Ọ̀fẹ́

Yí YAML padà sí JSON àti JSON padà sí YAML ní ìtọ́sọ́nà méjèèjì. Lẹ̀ẹ̀ka nínú oríṣi èyíkéyìí kí o sì gba àbájáde tí a yí padà lẹ́sẹ̀kẹsẹ̀ — kò sí gbígbésókè sí sáfa tí ó nílò.

Ó ń ṣiṣẹ́ láìsí ìsopọ̀ ní kété tí a bá kó wọlé
Ìyọrisí JSON
Àbájáde yóò farahàn níbí…

Bí Ó Ṣe Ń Ṣiṣẹ́

Ìtọ̀nà ìyípadà méjèèjì — YAML sí JSON àti JSON sí YAML — ń ṣiṣẹ́ pátápátá nínú aṣàwákiri rẹ ní lílo parser àti emitter tí a fi ọwọ́ kọ tí a kọ́ sínú ojú-ìwé náà, láìsí ìwé-ìṣirò YAML ẹnì kẹta àti láìsí sáfà tí ó kàn. Ìlànà náà ń gbé nínú module TypeScript kan ṣoṣo (lib/yamljson.ts) tí ó ń mú àwọn mappings, sequences, scalars, àwọn ọ̀wọ́ ọ̀rọ̀ tí a fi àmì hàn, àti yíyọ ọ̀rọ̀-àsọyé inú-ìlà kúrò.

  1. 1
    A ṣiṣẹ́ ìbáwọlé ìlà-lé-ìlà kí a tó pín in
    Fún ìbáwọlé YAML, parser náà ń pín ọ̀rọ̀ náà sí àwọn ìlà, ó ń yọ àwọn ọ̀rọ̀-àsọyé inú-ìlà kúrò (tí ó ń tọpasẹ̀ ipò àmì láti yẹra fún yíyọ # kúrò nínú àwọn ọ̀wọ́ ọ̀rọ̀), ó ń wọn ìjìnlẹ̀ ìlà, ó sì ń yọ àwọn ìlà òfìfo kúrò — tí ó ń kọ́ àtòjọ àwọn àmì tí a ṣe ìtòlẹ́sẹẹsẹ kí ìpín èyíkéyìí tó bẹ̀rẹ̀.
  2. 2
    Parser tí ń sọ̀kalẹ̀ tí ń tún ṣe ń kọ́ igi dátà náà
    Parser náà ń rìn kiri àtòjọ àmì náà ní lílo ìpele ìlà láti pinnu ìtòlẹ́sẹẹsẹ. Ó ń dá àwọn ohun sequence (- iye) mọ̀, àwọn kọ́kọ́rọ́ mapping (kọ́kọ́rọ́: iye), àti àwọn àkọ́sílẹ̀ tí a kọ́ sínú ara wọn. Àwọn scalars ń kọjá ìgbésẹ̀ ìyípadà tí a mọ̀ irú rẹ̀ tí ó ń mú null, boolean, àwọn odidi (tí ó ń kọ àwọn iye odo-ìṣáájú bí 007 láti yẹra fún ìbàjẹ́ dátà láìsọ), àti floats — pẹ̀lú ipò yíyàn kan tí ó ń pa àwọn ọ̀rọ̀-tí-kò-ní-àyọkà YAML 1.1 bí yes, no, on, àti off mọ́ gẹ́gẹ́ bí ọ̀rọ̀ dípò kí ó yí wọn padà sí boolean.
  3. 3
    Àwọn àṣàrò YAML tí a kò ṣètìlẹ́yìn ni a fi àmì sí, a kì í fi wọ́n sílẹ̀ láìsọ
    Kí ìtọjade tó jáde, irinṣẹ́ náà ń ṣàyẹ̀wò fún àwọn anchors (&orúkọ), aliases (*orúkọ), àwọn kọ́kọ́rọ́ dàpọ̀ (<<:), àwọn scalars àkọ́sílẹ̀ (| àti >), àwọn àmì ìwé-púpọ̀ (---), àti àwọn kọ́kọ́rọ́ mapping tí ó tún ṣe. Èyíkéyìí nínú wọ̀nyí ń dá ìkìlọ̀ tí ó hàn dípò kí ó mú JSON tí kò tọ́ díẹ̀ jáde.
  4. 4
    A serialize JSON tàbí a ṣe emit YAML, kí ó sì wà
    Fún YAML→JSON, a fi iye tí a pín sí JSON.stringify pẹ̀lú ìlà tí o yàn (àyè 2, àyè 4, tab, tàbí minified). Fún JSON→YAML, emitter àkànṣe kan ń rìn kiri iye JavaScript tí a pín náà tí ó sì ń mú YAML tí a fi ìlà sí i jáde, tí ó ń fi àyọkà sí àwọn scalars ọ̀rọ̀ nìkan nígbà tí ó bá nílò (f.à. àwọn iye tí ó ní :, #, tàbí tí ó dà bí ọ̀rọ̀ tí a dá sílẹ̀). Ìtọjade ń farahàn lẹ́sẹ̀kẹsẹ̀ bí o ṣe ń kọ, a lè dàkọ ọ́ tàbí gbà á.

Àwọn Irinṣẹ Tó Jọra

Àwọn Ìbéèrè Tí A Máa Ń Béèrè