CSV àti JSON: ọ̀nà méjì láti gbé dátà kan náà
Ọ̀pọ̀lọpọ̀ dátà tábìlì máa ń parí ní ọ̀kan lára ọ̀nà méjì. CSV ni èdè ìpilẹ̀ tábìlì (spreadsheet): fáìlì ọ̀rọ̀ pẹrẹsẹ níbi tí ìlà kọ̀ọ̀kan ti jẹ́ ọ̀wọ̀n (row) tí kọ́mà sì ń pín àwọn kọ̀lọ́mù (columns). JSON ni èdè àwọn API àti app: ọ̀nà tí a kọ́ pẹ̀lú àwọn ohun (objects, bọ́tìnì àti iye) àti àwọn àkójọ (arrays, àkójọ tí a to). Wọ́n ń ṣàpèjúwe àlàyé kan náà ní ìrísí tí ó yàtọ̀ pátápátá síra, ìdí gan-an ni ó fi jẹ́ pé yíyí padà láàrin wọn máa ń wáyé nígbà gbogbo. Ojú-ìwé yìí ń ṣe yíyí padà náà ní ọ̀nà méjèèjì, pátápátá nínú aṣàwakiri rẹ.
CSV ń dán ibikíbi tí ó bá dà bí ìlà tábìlì. Gbé àpilẹ̀kọ jáde láti inú ibi ìpamọ́ dátà, gba àkójọ ìbéèrè wọlé, tàbí fi ìlà pamọ́ láti Excel tàbí Google Sheets, o sì máa gba CSV ní gbogbo ìgbà. Ó kéré, ó rọrùn láti kà, gbogbo ohun èlò ìṣírò ayélujára sì lè ṣí i. JSON ń dán ibikíbi tí sọ́fítíwia ti ń bá ara wọn sọ̀rọ̀. Àwọn API REST ń fi ránṣẹ́ tí wọ́n sì ń gba a, àwọn fáìlì ètò ń lò ó, JavaScript sì ń kà á láìsí ìwé kankan síkún. Nígbà tí o bá nílò láti fi àpilẹ̀kọ tábìlì bọ́ sínú API tàbí kí o fa àbájáde API sínú tábìlì, o ń túmọ̀ láàrin ayé méjèèjì yìí gan-an ni.

Báwo ni ọ̀wọ̀n àti orí ṣe ń di àwọn ohun
Ìṣírò náà rọrùn ju bí ó ti hàn lọ. Ìlà àkọ́kọ́ fáìlì CSV kan sábà máa ń jẹ́ ìlà orí, àwọn orúkọ orí yẹn sì ń di àwọn bọ́tìnì (keys) nínú JSON. Ọ̀wọ̀n kọ̀ọ̀kan tí ó tẹ̀lé ń di ohun kan, níbi tí sẹ́ẹ̀lì kọ̀ọ̀kan ti ń bá orí tí ó bá a mu para pọ̀. Gbogbo fáìlì náà ń di àkójọ àwọn ohun wọ̀nyẹn. Nítorí náà CSV tí ó ní kọ̀lọ́mù name,email,age ń yí padà sí àkójọ bí i [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. Ní ọ̀nà òdìkejì, JSON sí CSV ń ka àwọn bọ́tìnì ohun àkọ́kọ́ láti kọ́ ìlà orí, ó sì ń kọ ọ̀wọ̀n kan fún ohun kọ̀ọ̀kan. Ó jẹ́ ìrìnàjò tí ó mọ́ tí a sì lè sọ tẹ́lẹ̀ ó bá ṣe pé dátà rẹ jẹ́ tábìlì ní ojúlówó.
Àwọn ìdẹ̀kùn tí ó tọ́ láti mọ̀
CSV dà bí ẹni pé ó rọrùn ṣùgbọ́n ó ní àwọn etí gbígbóná díẹ̀ tí ó fi pamọ́. Èyí tí ó tóbi jùlọ ni kọ́mà nínú pápá kan. Bí àdírẹ́sì kan bá ní "Berlin, Germany", pípín ní kọ́mà láìmọ̀ọ́mọ̀ yóò ya iye kan náà yẹn sí kọ̀lọ́mù méjì. Ìlànà CSV ń yanjú ìṣòro yìí nípa fífi irú pápá bẹ́ẹ̀ sínú àmì àyọ́kà méjì, àwọn àmì àyọ́kà tí ó bá wà nínú pápá tí a ti fi àyọ́kà kún sì ń di méjì (""). Ohun èlò yíyí padà tí ó dára ń bọ̀wọ̀ fún àwọn ìlànà wọ̀nyẹn kí dátà rẹ má bàa yí kọ̀lọ́mù padà láìfẹ̀sọ́nà. Ṣọ́ra fún àmì ìpín (delimiter) náà náà; ọ̀pọ̀lọpọ̀ àpilẹ̀kọ ilẹ̀ Yúróòpù ń lo àmì ìdúró dípò kọ́mà, nítorí pé kọ́mà ti jẹ́ àmì ẹ̀wọ̀n ọ̀tọ̀ọ̀tọ̀ (decimal separator) níbẹ̀ tẹ́lẹ̀. Tabs àti pipes máa ń hàn pẹ̀lú.
Ìyàtọ̀ tí ó jinlẹ̀ jùlọ ni onírúurú (types). CSV kò ní èrò iru dátà rárá. Ohun gbogbo jẹ́ ọ̀rọ̀, nítorí náà nọ́mbà 42, ìdáhùn tòótọ́ true, àti sẹ́ẹ̀lì òfìfo gbogbo dà bí ọ̀rọ̀ pẹrẹsẹ. JSON, ní ọ̀nà mìíràn, ń fi ìyàtọ̀ sí nọ́mbà, ọ̀rọ̀, ìdáhùn tòótọ́, null, àti ìrísí tí a fi sínú ara wọn. Nígbà tí o bá yí CSV padà sí JSON, àwọn iye ń dé bí ọ̀rọ̀ pẹrẹsẹ àyàfi tí a bá sọ fún ohun èlò náà láti túmọ̀ nọ́mbà àti ìdáhùn tòótọ́. Yíyí JSON padà sí CSV ní ìṣòro òdìkejì: àwọn ohun àti àkójọ tí a fi sínú ara wọn kì í bá tábìlì pẹrẹsẹ mu dáradára, nítorí náà wọ́n sábà máa ń dá pọ̀ tàbí kí a sọ wọ́n di ọ̀rọ̀ nínú sẹ́ẹ̀lì kan. Mímọ̀ èyí ṣáájú ń dá ọ dúró láti máa ṣàníyàn nígbà tí kọ̀lọ́mù bá "dà bí ohun tí kò tọ́" lẹ́yìn náà.

Ìrìnàjò ìlọ-àti-padà gidi
Ìṣẹ̀lẹ̀ kan tí ó máa ń wáyé léraléra rèé. Ọ̀rẹ́ iṣẹ́ kan fi tábìlì àwọn olùmúlò tuntun ránṣẹ́ sí ọ, ó sì ní kí o kó wọn wọlé nípasẹ̀ API inú. API náà ń gba JSON nìkan. O gbé tábìlì náà jáde sí CSV, o lẹ̀ ẹ́ síhìn-ín, o sì gba àkójọ ohun tí ó mọ́ tí ó ti ṣetán láti fi sínú ìbéèrè rẹ. Lẹ́yìn náà, API náà ń dá àkójọ JSON àwọn àkọsílẹ̀ tí ó dá padà, o sì nílò láti fi wọ́n fún ọ̀rẹ́ kan náà láti wo. O lẹ̀ JSON náà, o yí padà sí CSV, ó sì ṣí tààrà nínú tábìlì wọn. Kò sí àpẹẹrẹ (scripts), kò sí ìfisípò, kìkì ìtúmọ̀ kánkán méjì láàrin iṣẹ́ ojoojúmọ́.
Ẹ̀rọ tirẹ nìkan, nípa ìpinnu
Gbogbo èyí ń ṣẹlẹ̀ nínú aṣàwakiri rẹ. A ń túmọ̀ tí a sì ń yí CSV àti JSON rẹ padà nípasẹ̀ JavaScript lórí ẹ̀rọ tirẹ, a kì í sì fi ránṣẹ́ sí sáfà kankan. Ìyẹn ṣe pàtàkì nítorí pé àwọn àpilẹ̀kọ sábà máa ń ní orúkọ gidi, ímeèlì, àlàyé ìbéèrè, tàbí àmì ìdánimọ̀ inú tí kò yẹ kí o fi sínú iṣẹ́ ẹlòmíràn tí o kò mọ̀. Níhìn-ín, dátà náà kì í kúrò lórí ojú-ìwé rárá. Bí o bá fẹ́ mú àbájáde náà tọ́ lẹ́yìn náà, ohun èlò ìṣàtúnṣe JSON wa yóò ṣe é dáradára tí yóò sì ṣàyẹ̀wò rẹ̀, o sì lè wo ìyókù àwọn ohun èlò yíyí dátà padà wa fún àwọn ọ̀nà mìíràn tí ó jọra.
Àwọn ìbéèrè tí a sábà máa ń béèrè
Ṣé a ń fi dátà mi ránṣẹ́ sí ibòmíràn?
Rárá. Yíyí padà náà máa ń ṣẹlẹ̀ pátápátá nínú aṣàwakiri rẹ ní lílo JavaScript, nítorí náà CSV àti JSON rẹ ń dúró lórí ẹ̀rọ tirẹ, a kì í sì fi wọ́n ránṣẹ́ sí sáfà kankan.
Ṣé ohun èlò yíyí padà náà ń bójú tó kọ́mà nínú pápá?
Bẹ́ẹ̀ni. Àwọn pápá tí ó ní kọ́mà yẹ kí a fi sínú àmì àyọ́kà méjì nínú CSV, ohun èlò tí ń ka a náà sì ń bọ̀wọ̀ fún àmì àyọ́kà yẹn kí iye náà lè dúró nínú kọ̀lọ́mù kan ṣoṣo.
Kí nìdí tí àwọn nọ́mbà mi fi hàn gẹ́gẹ́ bí ọ̀rọ̀ nínú JSON?
CSV kò ní iru dátà kankan, nítorí náà sẹ́ẹ̀lì kọ̀ọ̀kan jẹ́ ọ̀rọ̀ pẹrẹsẹ. Àwọn iye ń di ọ̀rọ̀ JSON àyàfi tí a bá lo ìtúmọ̀ nọ́mbà àti ìdáhùn tòótọ́, nítorí pé fáìlì orísun náà kò lè fi ìyàtọ̀ hàn láàrin nọ́mbà àti ọ̀rọ̀.
Kí ni ó ń ṣẹlẹ̀ sí JSON tí a fi sínú ara wọn nígbà tí mo bá yí padà sí CSV?
Ìlàkọ̀ pẹrẹsẹ kò lè gbé ìrísí tí a fi sínú ara wọn mú, nítorí náà àwọn ohun àti àkójọ tí a fi sínú ara wọn sábà máa ń dá pọ̀ tàbí kí a kọ wọ́n gẹ́gẹ́ bí iye ọ̀rọ̀ kan ṣoṣo nínú sẹ́ẹ̀lì kan.
Ṣé mo lè lo àmì ìdúró tàbí tab dípò kọ́mà?
Bẹ́ẹ̀ni. Ọ̀pọ̀lọpọ̀ àpilẹ̀kọ, pàápàá jùlọ ti ilẹ̀ Yúróòpù, ń lo àmì ìdúró tàbí tabs gẹ́gẹ́ bí àmì ìpín, ohun èlò náà sì lè ka wọ́n dípò kọ́mà ìlànà.
Ṣé ó ń yí padà ní ọ̀nà méjèèjì?
Bẹ́ẹ̀ni. O lè yí CSV padà sí JSON àti JSON padà sí CSV, èyí tí ó mú kí ìrìnàjò ìlọ-àti-padà láàrin tábìlì àti API rọrùn.
