CSV va JSON: bir xil ma'lumotni tashishning ikki usuli
Ko'pchilik jadval ma'lumotlari ikkita formatdan birida yashaydi. CSV - jadvalning tug'ma tili: har bir satr bir qator bo'lgan va ustunlarni vergul bilan ajratadigan oddiy matn fayli. JSON - API va ilovalarning tili: obyektlar (kalit va qiymat juftliklari) hamda massivlar (tartiblangan ro'yxatlar)dan tashkil topgan tuzilgan matn formati. Ular bir xil ma'lumotni juda turli shakllarda tasvirlaydi, va aynan shuning uchun ular orasida konvertatsiya qilish tez-tez kerak bo'ladi. Ushbu sahifa bu konvertatsiyani ikkala yo'nalishda ham, to'liq brauzeringiz ichida amalga oshiradi.
CSV jadval tabiiy his qilinadigan har qanday joyda ajralib turadi. Ma'lumotlar bazasidan hisobotni eksport qiling, buyurtmalar ro'yxatini yuklab oling yoki Excel yoki Google Sheets-dan varaqni saqlang - deyarli har doim CSV olasiz. U ixcham, inson o'qiy oladigan, va yer yuzidagi har qanday tahlil vositasi uni ochishi mumkin. JSON esa dastur dastur bilan gaplashadigan har qanday joyda ajralib turadi. REST API-lar uni jo'natadi va qabul qiladi, konfiguratsiya fayllari undan foydalanadi, va JavaScript uni hech qanday tahlil kutubxonasisiz o'qiydi. Jadval eksportini API-ga uzatish yoki API javobini jadvalga olib kirish kerak bo'lganda, siz aslida ushbu ikki dunyo orasida tarjima qilayapsiz.

Qatorlar va sarlavhalar obyektlarga qanday aylanadi
Moslashtirish ko'rinishidan ancha oddiy. CSV faylining birinchi qatori odatda sarlavha qatori bo'ladi, va bu sarlavha nomlari JSON-da kalitlarga aylanadi. Har bir keyingi qator bitta obyektga aylanadi, unda har bir katak mos sarlavha bilan juftlashtiriladi. Butun fayl ushbu obyektlarning massiviga aylanadi. Shunday qilib, name,email,age ustunlariga ega CSV [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...] kabi ro'yxatga aylanadi. Aksincha yo'nalishda, JSON-dan CSV-ga sarlavha qatorini yaratish uchun birinchi obyektning kalitlarini o'qiydi, so'ng har bir obyekt uchun bitta qator yozadi. Bu ma'lumotingiz haqiqatan ham jadval shaklida bo'lguncha toza va bashorat qilinadigan aylanma yo'l.
Bilishga arzigulik nozik jihatlar
CSV oddiy ko'rinadi, lekin bir necha keskin qirralarni yashiradi. Eng kattasi - maydon ichidagi vergullar. Agar manzil "Berlin, Germany" bo'lsa, vergullar bo'yicha soddagina ajratish bitta qiymatni ikkita ustunga yirtib tashlaydi. CSV standarti buni shunday hal qiladi: bunday maydonlarni qo'sh tirnoq ichiga oladi, va tirnoq belgili maydon ichidagi tirnoqlar ikki barobar qilinadi (""). Yaxshi konvertor bu qoidalarga rioya qiladi, shunda ma'lumotingiz sezilmagan holda ustunlarni almashtirmaydi. Ajratuvchini ham kuzatib boring: ko'plab Yevropa eksportlari vergul o'rniga nuqta-vergul ishlatadi, chunki u yerda vergul allaqachon o'nlik ajratuvchisi hisoblanadi. Tab va vertikal chiziq (pipe) belgilari ham uchraydi.
Chuqurroq farq - turlar masalasida. CSV-da umuman ma'lumot turi tushunchasi yo'q. Hammasi matn, shuning uchun 42 raqami, true mantiqiy qiymati va bo'sh katak - barchasi oddiy satr sifatida ko'rinadi. JSON esa, aksincha, raqamlar, satrlar, mantiqiy qiymatlar, null va ichma-ich tuzilmalarni farqlaydi. CSV-ni JSON-ga konvertatsiya qilganda, vositaga raqamlar va mantiqiy qiymatlarni talqin qilish buyurilmasa, qiymatlar satr sifatida keladi. JSON-ni CSV-ga konvertatsiya qilishda esa teskari muammo bor: ichma-ich joylashgan obyektlar va massivlar tekis jadvalga chiroyli sig'maydi, shuning uchun ular odatda bitta katak ichida tekislashtiriladi yoki satrga aylantiriladi. Buni oldindan bilish sizni keyinchalik nima uchun ustun "noto'g'ri ko'rinishi"ni o'ylashdan qutqaradi.

Haqiqiy aylanma misol
Mana doimo yuzaga keladigan holat. Hamkasbingiz sizga yangi foydalanuvchilar jadvalini yuboradi va ularni ichki API orqali yuklashingizni so'raydi. API faqat JSON-ni qabul qiladi. Siz varaqni CSV-ga eksport qilasiz, uni shu yerga joylashtirasiz va so'rovingiz yukiga tashlashga tayyor toza obyektlar massivini olasiz. Keyinroq, API yaratgan yozuvlarning JSON ro'yxatini qaytaradi, va siz buni ko'rib chiqish uchun xuddi shu hamkasbingizga topshirishingiz kerak. JSON-ni joylashtirasiz, uni CSV-ga konvertatsiya qilasiz, va u to'g'ridan-to'g'ri ularning jadvalida ochiladi. Hech qanday skript, hech qanday o'rnatish, faqat oddiy ish jarayonining o'rtasida ikkita tezkor tarjima.
Faqat mahalliy, ataylab
Bularning barchasi brauzeringizda ishlaydi. CSV va JSON-ingiz o'z mashinangizdagi JavaScript orqali tahlil qilinadi va konvertatsiya qilinadi, va hech narsa serverga yuklanmaydi. Bu muhim, chunki eksportlar ko'pincha haqiqiy ismlar, elektron pochtalar, buyurtma tafsilotlari yoki ichki identifikatorlarni o'z ichiga oladi, ularni tasodifiy masofaviy xizmatga joylashtirmasligingiz kerak. Bu yerda ma'lumot hech qachon sahifadan chiqmaydi. Natijani keyinroq tartibga solmoqchi bo'lsangiz, bizning JSON formatlash vositasi uni chiroyli formatlaydi va tekshiradi, va tegishli formatlar uchun bizning boshqa ma'lumot konvertorlarimizni ko'rib chiqishingiz mumkin.
Tez-tez so'raladigan savollar
Ma'lumotim biror joyga yuklanadimi?
Yo'q. Konvertatsiya to'liq brauzeringizda JavaScript yordamida amalga oshiriladi, shuning uchun CSV va JSON-ingiz o'z qurilmangizda qoladi va hech qachon serverga yuborilmaydi.
Konvertor maydonlar ichidagi vergullarni qayta ishlaydimi?
Ha. Vergul o'z ichiga olgan maydonlar CSV-da qo'sh tirnoq ichiga olinishi kerak, va tahlilchi ushbu tirnoqlarga rioya qiladi, shunda qiymat bitta ustunda qoladi.
Nima uchun raqamlarim JSON-da matn sifatida ko'rinmoqda?
CSV-da ma'lumot turlari yo'q, shuning uchun har bir katak oddiy matn. Raqam va mantiqiy qiymatlarni tahlil qilish qo'llanilmasa, qiymatlar JSON satrlariga aylanadi, chunki manba fayl raqamni so'zdan ajratishning imkonini bermaydi.
CSV-ga konvertatsiya qilganda ichma-ich JSON-ga nima bo'ladi?
Tekis jadval ichma-ich tuzilmalarni saqlay olmaydi, shuning uchun ichma-ich obyektlar va massivlar odatda tekislashtiriladi yoki bitta katak ichida satr sifatida yoziladi.
Vergul o'rniga nuqta-vergul yoki tab ishlatsam bo'ladimi?
Ha. Ko'plab eksportlar, ayniqsa Yevropadagilar, ajratuvchi sifatida nuqta-vergul yoki tab-dan foydalanadi, va vosita standart vergul o'rniga ularni ham o'qiy oladi.
U ikkala yo'nalishda ham konvertatsiya qiladimi?
Ha. Siz CSV-ni JSON-ga va JSON-ni qaytadan CSV-ga aylantirishingiz mumkin, bu esa jadvallar va API-lar orasidagi aylanma yo'lni sodda qiladi.
