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ò.
À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ò.
- 1A ṣiṣẹ́ ìbáwọlé ìlà-lé-ìlà kí a tó pín inFú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ẹ̀.
- 2Parser 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À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.
- 4A 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
Olùyí JSON sí XML
Yí JSON padà sí XML àti XML padà sí JSON, ní ìtọ́sọ́nà méjèèjì, pẹ̀lú àwọn ànikàntọ́wọ́ àti àwọn àkójọpọ̀ tí ó dúró bí ó ti rí. Ó ń ṣiṣẹ́ pátápátá nínú ẹ̀rọ àwárí rẹ — kò sí ohunkóhun tí a gbé sókè.
CSV sí JSON
Yí CSV (tàbí TSV) padà sí JSON — àkójọpọ̀ àwọn nǹkan tàbí àwọn àkójọpọ̀ — pẹ̀lú olùṣàyẹ̀wò RFC 4180 tí ó tọ́, ìrí ààlà fúnra rẹ̀, àti ìyípadà oríṣi. Ó ń ṣiṣẹ́ nínú ẹ̀rọ àwárí rẹ.
Olùtú JWT
Tú kí o sì ṣàyẹ̀wò JSON Web Token kankan. Wo orí-àkọlé, àkóónú, àkókò ìparí, àti àwọn ẹ̀tọ́ déédé. Gbogbo rẹ̀ ń ṣiṣẹ́ ní agbègbè nínú ẹ̀rọ àwárí rẹ — àwọn token kò kúrò lára ẹ̀rọ rẹ rárá.