CSV ва JSON: ду роҳи интиқоли ҳамон маълумот
Аксари маълумоти ҷадвалӣ дар яке аз ду формат зиндагӣ мекунад. CSV забони бумии ҷадвал аст: файли матни оддӣ, ки дар он ҳар сатр як қатор аст ва вергулҳо сутунҳоро ҷудо мекунанд. JSON забони API ва барномаҳост: формати сохтории матн аз объектҳо (ҷуфти калид ва арзиш) ва массивҳо (рӯйхатҳои тартибдодашуда) сохта шудааст. Онҳо ҳамон маълумотро бо шаклҳои хеле гуногун тавсиф мекунанд, ки маҳз ба ҳамин сабаб табдил дар байни онҳо аксар вақт пайдо мешавад. Ин саҳифа ин табдилро дар ҳарду самт, комилан дар дохили браузери шумо иҷро мекунад.
CSV дар ҳар ҷое, ки ҷадвал табиӣ менамояд, медурахшад. Ҳисоботро аз пойгоҳи маълумот содирот кунед, рӯйхати фармоишҳоро боргирӣ кунед ё варақро аз Excel ё Google Sheets захира кунед ва шумо қариб ҳамеша CSV мегиред. Он фушурда, барои инсон хонда мешавад ва ҳар абзори таҳлилӣ дар ҷаҳон онро кушода метавонад. JSON дар ҳар ҷое, ки нармафзор бо нармафзор сӯҳбат мекунад, медурахшад. API-ҳои REST онро мефиристанд ва мегиранд, файлҳои танзимот онро истифода мебаранд ва JavaScript онро бидуни ягон китобхонаи таҳлил мехонад. Вақте ки шумо бояд содироти ҷадвалро ба API диҳед ё посухи API-ро ба ҷадвал кашед, шумо воқеан дар байни ин ду ҷаҳон тарҷума мекунед.

Чӣ гуна қаторҳо ва сарлавҳаҳо ба объектҳо табдил меёбанд
Харитагирӣ назар аз намуди он содатар аст. Хатти аввали файли CSV одатан сатри сарлавҳа мебошад ва он номҳои сарлавҳа ба калидҳо дар JSON табдил меёбанд. Ҳар қатори баъдӣ ба як объект табдил меёбад, ки дар он ҳар ҳуҷра бо сарлавҳаи мувофиқ ҷуфт мешавад. Тамоми файл ба массиви ин объектҳо табдил меёбад. Пас CSV бо сутунҳои name,email,age ба рӯйхале ба монанди [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...] табдил меёбад. Ба самти дигар, JSON ба CSV калидҳои объекти аввалро мехонад, то хатти сарлавҳаро созад, сипас як қатор ба ҳар объект менависад. Он сафари даврии тоза ва пешбинишаванда аст, то даме ки маълумоти шумо воқеан ҷадвалӣ бошад.
Мушкилиҳое, ки арзиши донистан доранд
CSV бемазмун менамояд, аммо якчанд канораи тезро пинҳон мекунад. Бузургтарин вергулҳо дар дохили майдон мебошанд. Агар суроға "Berlin, Germany" дошта бошад, тақсими содда бо вергул ин арзиши ягонаро ба ду сутун мебурад. Стандарти CSV инро бо печонидани чунин майдонҳо дар нохунакҳои дугона ҳал мекунад ва нохунакҳо дар дохили майдони нохунакдор дугона мешаванд (""). Мубаддили хуб ин қоидаҳоро риоя мекунад, то маълумоти шумо бесадо сутунҳоро иваз накунад. Ба ҷудокунанда низ таваҷҷуҳ кунед: бисёр содироти аврупоӣ нуқтавергулро ба ҷои вергул истифода мебаранд, зеро вергул дар он ҷо аллакай ҷудокунандаи даҳдугона аст. Табулятор ва хатти амудӣ низ пайдо мешаванд.
Фарқи амиқтар навъҳо мебошад. CSV ҳеҷ мафҳуми навъи маълумотро надорад. Ҳама чиз матн аст, бинобар ин рақами 42, буливи true ва ҳуҷраи холӣ ҳама ба монанди сатрҳои оддӣ менамоянд. JSON, баръакс, рақамҳо, сатрҳо, буливҳо, null ва сохторҳои дарунлонаро фарқ мекунад. Вақте ки шумо CSV-ро ба JSON табдил медиҳед, арзишҳо ҳамчун сатр меоянд, магар ин ки ба абзор гуфта шавад, ки рақамҳо ва буливҳоро тафсир кунад. Табдили JSON ба CSV мушкилии баръаксро дорад: объектҳо ва массивҳои дарунлона ба ҷадвали ҳамвор хуб мувофиқат намекунанд, бинобар ин онҳо одатан ҳамвор карда мешаванд ё ба як ҳуҷраи ягона ба сатр табдил дода мешаванд. Донистани ин пеш аз вақт шуморо аз ҳайрони он ки чаро сутун "нодуруст менамояд" баъдтар наҷот медиҳад.

Сафари воқеии даврӣ
Ин ҳолатест, ки доимо пайдо мешавад. Ҳамкоре ҷадвали корбарони навро ба шумо мефиристад ва аз шумо мепурсад, ки онҳоро тавассути API-и дохилӣ бор кунед. API танҳо JSON-ро қабул мекунад. Шумо варақро ба CSV содирот мекунед, онро дар ин ҷо мечаспонед ва массиви тозаи объектҳоеро мегиред, ки барои гузоштан ба бори дархости шумо омоданд. Баъдтар, API рӯйхати JSON-и сабтҳоеро, ки он офаридааст, бармегардонад ва шумо бояд онро ба ҳамон ҳамкор барои баррасӣ баргардонед. Шумо JSON-ро мечаспонед, онро ба CSV табдил медиҳед ва он мустақим дар ҷадвали онҳо кушода мешавад. Ҳеҷ скрипт, ҳеҷ насб, танҳо ду тарҷумаи тез дар миёнаи гардиши кории муқаррарӣ.
Танҳо маҳаллӣ, бо тарроҳӣ
Ҳама ин дар браузери шумо кор мекунад. CSV ва JSON-и шумо бо JavaScript дар мошини худи шумо таҳлил ва табдил дода мешаванд ва ҳеҷ чиз ба сервер бор карда намешавад. Ин муҳим аст, зеро содирот аксар вақт номҳои воқеӣ, почтаҳо, тафсилоти фармоиш ё муайянкунандаҳои дохилиро дар бар мегиранд, ки шумо набояд ба хидмати тасодуфии дурдаст часпонед. Дар ин ҷо маълумот ҳеҷ гоҳ саҳифаро тарк намекунад. Агар шумо мехоҳед натиҷаро баъдан тартиб диҳед, форматкунандаи JSON-и мо онро зебо чоп ва тасдиқ мекунад ва шумо метавонед боқимондаи мубаддилони маълумот-и моро барои форматҳои марбут аз назар гузаронед.
Саволҳои маъмул
Оё маълумоти ман ба ҷое бор мешавад?
Не. Табдил комилан дар браузери шумо бо истифода аз JavaScript кор мекунад, бинобар ин CSV ва JSON-и шумо дар дастгоҳи худи шумо мемонанд ва ҳеҷ гоҳ ба сервер фиристода намешаванд.
Оё мубаддил вергулҳоро дар дохили майдонҳо коркард мекунад?
Бале. Майдонҳое, ки вергул доранд, бояд дар CSV дар нохунакҳои дугона печонида шаванд ва таҳлилгар ин нохунакҳоро риоя мекунад, то арзиш дар як сутуни ягона бимонад.
Чаро рақамҳои ман дар JSON ҳамчун матн пайдо мешаванд?
CSV ҳеҷ навъи маълумот надорад, бинобар ин ҳар ҳуҷра матни оддӣ аст. Арзишҳо ба сатрҳои JSON табдил меёбанд, магар ин ки таҳлили рақам ва булив татбиқ шавад, зеро файли манбаъ ҳеҷ роҳе барои фарқ кардани рақам аз калима намедиҳад.
Ба JSON-и дарунлона ҳангоми табдил ба CSV чӣ мешавад?
Ҷадвали ҳамвор наметавонад сохторҳои дарунлонаро нигоҳ дорад, бинобар ин объектҳо ва массивҳои дарунлона одатан ҳамвор карда мешаванд ё ҳамчун арзиши ягонаи ба сатр табдилёфта дар як ҳуҷра навишта мешаванд.
Оё метавонам нуқтавергул ё табулятор ба ҷои вергул истифода барам?
Бале. Бисёр содирот, махсусан аврупоӣ, нуқтавергул ё табуляторро ҳамчун ҷудокунанда истифода мебаранд ва абзор метавонад онҳоро ба ҷои вергули стандартӣ хонад.
Оё он ҳарду самтро табдил медиҳад?
Бале. Шумо метавонед CSV-ро ба JSON ва JSON-ро баргардонида ба CSV табдил диҳед, ки сафарҳои даврӣ дар байни ҷадвалҳо ва API-ҳоро содда мекунад.
