Menene canzawar CSV zuwa JSON?
CSV (Comma-Separated Values, RFC 4180) tsari ne na rubutu mai lebur, mai tebur; JSON (JavaScript Object Notation, RFC 8259) tsari ne na rubutu mai siffar bishiya don bayanai masu tsari. Canza CSV zuwa JSON yana maida teburin da ya dace da spreadsheet zuwa array na abubuwa mai kyau na API — ɗan abu ɗaya a kowane layi, tare da layin taken yana samar da makullan — ba tare da sake rubuta sel ɗaya ba.
Yadda canzawar CSV zuwa JSON ke aiki?
Kowane canzawa yana gudana a gida a cikin burauzarka. Matakai mafi girma sune:
- Ka liƙa CSV a cikin ɓangaren shigarwa kuma ka danna CANZA; kayan aikin yana bincike rubutu kuma yana fitar da array na JSON na abubuwa a ɓangaren fitarwa.
- Injin hali na harafi-da-harafi (FIELD_START → IN_UNQUOTED_FIELD ko IN_QUOTED_FIELD) yana tafiya cikin shigarwa, yana girmama kuɓutar quote-quote na
"", yana gane masu ƙarewa na layi na\r\nda\n, kuma yana samar da array na 2-D na kirtani a matsayin wakilci na tsakiya. - Idan layin farko an nuna shi a matsayin taken, sel ɗinsa suna zama makullan abubuwa; in ba haka ba kayan aikin yana ƙirƙirar makullan na wucin gadi
field0,field1, … don kowane layi ya ci gaba da taswirar zuwa abu cikakke. - Mai raba (koma, semicolon, tab, pipe, ko gano ta atomatik) da canza nau'i (lambobi / Boolean /
null) duk suna iya tsarawa. Da canza nau'i a kan,30ya zama lamba 30 kumatrueya zama boolean; da shi kashe, kowane sel ya kasance kirtani. - Ana rubuta fitarwa zuwa yankin rubutu mai karatu-kawai a matsayin rubutu mai tsari na
JSON.stringify, kuma hanyar sauke yana ginaBlobtare da nau'in MIME naapplication/json;charset=utf-8don ka iya adana sakamakon da dannawa ɗaya.
Me ya sa canza CSV zuwa JSON da wannan kayan aiki?
- Sirri: kowane bincike da canzawa yana gudana a gida a cikin burauzarka. Bayanai ba sa taɓa maɓallinmu.
- Daidaito: CSV parser injin hali ne na gaske. Filayen da ke ƙunshe da koma da aka ambata (
"Bob, Jr."), layin sabon da aka haɗa, da quotes da aka kuɓuce suna bincike zuwa sel ɗaya, ba uku ba — aiwatarwar naïve nasplit(',')suna samun wannan kuskure. - Amincin nau'i: canza nau'i na zaɓi yana maida sel na lambobi da Boolean zuwa lambobi da Booleans na gaske na JSON, don haka array ɗin da ka samu yana shirye don amfani kai tsaye ba tare da wani tsaftar biyu ba.
- Sassauci: zaɓi duk mai raba don yaren CSV mara koma, zaɓi ko layin farko shine taken, da kunna/kashe canza nau'i don lokutan da kowane sel dole ya kasance kirtani.
Menene ayyukan gari na canzawar CSV zuwa JSON?
Bincike CSV zuwa JSON yana bayyana a duk faɗin aiki da bayanai da kayan aiki:
- API mocking: liƙa ƴan CSV da aka fitar daga teburin lissafi kuma canza shi zuwa array na JSON da maɓallin gida ɗinka zai iya dawo da shi a matsayin ƙarshen mocking.
- Shigar da bayanai: maida fitar da teburin lissafi (tuntuɓin mutane, kaya, amsoshin bincike) zuwa array na JSON da aikace-aikacen ka ko rubutun ka zai iya kewaya ba tare da dogaro da CSV parser ba.
- Gyara tsari: barin masu sake duba waɗanda ba na fasaha ba su gyara saitunan ko tutoci na fasali sel da sel a cikin teburin lissafi, sannan canza CSV da aka adana zuwa JSON da aikace-aikacen ka ke ɗaukarwa.
Yaya misali na canzawar CSV zuwa JSON ke kama?
Liƙa name,age a layin farko, Alice,30 a layin biyu, da "Bob, Jr.",25 a layin uku, sannan danna CANZA tare da mai raba koma, layin farko a matsayin makullan, da canza nau'i a kan, yana samar da [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] — koma da aka ambata a cikin "Bob, Jr." tana zaune a cikin filin ɗaya, kuma shekarun sun zama lambobi na gaske na JSON.
Shin wannan mai canza CSV zuwa JSON yana gudana gaba ɗaya a cikin burauzarki?
Eh. Kowane bincike da canzawa yana gudana a gida a matsayin JavaScript a cikin taba burauzarka. Kayan aikin ba ya kiran fetch, XMLHttpRequest, ko navigator.sendBeacon gaba ɗaya — bayanai na CSV ɗinka ba su taɓa maɓallinmu, mai canza na waje, ko wani layin nazari ba. Kayan aikin kuma yana aiki ba tare da intanet ba da zarar an loda shafin, saboda ɓangaren HTML/CSS/JS ne mara wata dogara ga API na lokaci-aiki.
Mene ne mafi girman girman shigarwa da wannan mai canza zai iya sarrafa?
Mai canza yana kiyaye cikakken shigarwa a ƙwaƙwalwa kuma yana gudana a jere a kan zaren babba, don haka iyakoki na aikace-aikace suna dogara da na'urar ka. Shigarwa har zuwa kusan 10 MB na CSV (kusan layi 100,000 na yau da kullum) suna canzawa ba tare da dakewa da ake iya gani ba a kan kwamfutar tafi-da-gidanka na zamani. Bayan haka UI na iya dakewa yayin da parser ke gudana. Canzawa ta yanayin ta amfani da Web Worker da parser da aka yanke shi shirye-shirye ne da aka yi niyya — a yanzu, raba datasets mafi girma kafin liƙa su.
Yaya CSV zuwa JSON parser ke sarrafa koma da aka ambata da layin sabon da aka haɗa?
Parser injin hali ne na harafi-da-harafi tare da jihohi uku (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD) — ba naïve na split(',') ba. Filin da aka nannade a cikin quotes biyu na iya ƙunshe da mai raba, CR, LF, ko quote biyu ta zahiri da aka kuɓuce a matsayin "", duk ba tare da karya iyakokin filin ba. Don haka "Bob, Jr.",25 yana bincike zuwa filayen biyu, ba uku ba, kuma bayanin da ke kan layi da yawa da aka ambata a duk layuka yana bincike zuwa sel ɗaya.
Ta yaya ake rubuta lambobi, Booleans, da sel mara komai a cikin fitarwar JSON?
Rubuta ake sarrafa ta mabuɗin Canza nau'i. Da canza nau'i a kan (na asali), sel da yayi kama da lamba yana zama lamba ta JSON, true/false suna zama Booleans, kuma null na zahiri yana zama JSON null; duk sauran suna kasance kirtani. Da shi kashe, kowane ƙima ana adana shi a matsayin kirtani ba tare da la'akari da abubuwan ciki ba — yana da amfani lokacin da sifirin jagora, lambobin waya, ko lambobin shaida dole su kasance marasa lahani. Sel na ƙarshe da suka ɓace a cikin ɗan gajeren layi ana fitar da su a matsayin kirtani mara komai don kowane abu ya sami cikakken saitin makullan.
Wane masu raba CSV ɓangare ke goyan bayan?
Ana goyan bayan masu raba huɗu na bayyane: koma (,, na asali na RFC 4180), semicolon (;, gama gari a yare na Turai), tab (\t, yaren TSV), da pipe (|). Za ka iya zaɓar Gano ta atomatik kuma, wanda ke ƙididdige bayyanar kowane ɗan takara a farkon 4 KB na shigarwa a wajen yankunan da aka ambata kuma yana zaɓar mafi yawancin wanda ke samar da ƙirgidagidain ginshiƙa a duk layi biyar na farko.
Wannan mai canza CSV zuwa JSON yana bincike da injin hali na gaske kuma yana fitar da JSON mai tsabta, shirye don amfani wanda za ka iya liƙa kai tsaye zuwa kiran API, rubutun, ko sake duba lambar — ba tare da loda ko baiti ɗaya ba.