§

CSV-ga o'zgartirmoqchi bo'lgan JSON massivini shu yerga joylashtiring.

Ajratuvchi
Sarlavha ustunlari
Birinchi satr sarlavha
Ichma-ich obyektlar
Tipni keltirish
§

Output

csv

JSON-ni CSV-ga konvertatsiya O'zbekistondagi ma'lumotlar tahliliga oid kundalik vazifa: data.gov.uz va stat.uz portallari Davlat statistika qo'mitasining ko'rsatkichlarini JSON API orqali e'lon qiladi va konveyerlar bu fayllarni Excel yoki Yandex DataLens uchun CSV-ga aylantiradi. Markaziy bank kurslari va ochiq bank API'si JSON ko'rinishida keladi, lekin analitik guruhlar CSV kerak bo'ladi. Soliq qo'mitasining e-faktura tizimi va IT Park rezident kompaniyalarining moliyaviy hisobotlari ham xuddi shu yo'lda harakat qiladi. Bu konvertor yoyishni lokal ravishda amalga oshiradi — STIR yoki passport ma'lumotlari brauzerdan tashqariga chiqmaydi.

JSON dan CSV ga konvertatsiya nima?

JSON (JavaScript Object Notation, RFC 8259) — tuzilgan ma'lumotlar uchun daraxt shaklidagi matn formati; CSV (Comma-Separated Values, RFC 4180) — tekis, jadval ko'rinishidagi matn formati. JSON-ni CSV-ga aylantirish bu daraxtni satrlar va ustunlarga yoyadi, shuning uchun API javobi sifatida boshlangan ma'lumotlar to'plami birorta satrni qayta yozmasdan elektron jadvalda tozalikcha ochiladi.

JSON dan CSV ga konvertatsiya qanday ishlaydi?

Har bir konvertatsiya brauzeringizda lokal tarzda bajariladi. Asosiy bosqichlar:

  1. JSON.parse kiritishni tekshiradi va bu yuqori darajadagi yozuvlar massivi ekanligini tasdiqlaydi. Qavslar, vergullar yoki qo'shtirnoqli kalitlar noto'g'ri bo'lsa, aniq xato ko'rsatiladi.
  2. Yozuvchi yozuvlaringizdan sarlavha ustunlarini chiqaradi: ko'rilgan barcha kalitlar birlashmasi yoki faqat birinchi yozuvdagi kalitlar — almashtirgichga qarab.
  3. Ichma-ich obyektlar nuqtali kalitlarga yoyiladi (user.id, user.city) yoki bitta JSON katakchasi sifatida serializatsiya qilinadi — tanlovga qarab. Obyektlar ichidagi massivlar ikkala holatda ham JSON sifatida serializatsiya qilinadi.
  4. Har bir katak RFC 4180 bo'yicha belgilanadi: ajratuvchi, ikki qo'shtirnoq yoki satr oxirini o'z ichiga olgan har qanday qiymat qo'shtirnoq ichiga olinadi va ichki qo'shtirnoqlar ikkilanadi. Satrlar \r\n satr yakunlovchilari bilan birlashtiriladi.
  5. CSV faqat o'qish uchun matn maydoniga tushiriladi va yuklab olish havolasi text/csv;charset=utf-8 MIME turi bilan Blob hosil qiladi, shunda faylni bir bosish bilan saqlashingiz mumkin.

Nima uchun JSON-ni CSV-ga shu vosita bilan o'zgartirish kerak?

  • Maxfiylik: har bir tahlil, yoyish va yozish brauzeringizda bajariladi. Ma'lumotlar serverlarimizga hech qachon yetib bormaydi.
  • To'g'rilik: yozuvchi RFC 4180-ni bajaradi. Bob, Jr. kabi qiymat "Bob, Jr." ga aylanadi — ikki ustun emas, qo'shtirnoq ichida bitta katak — va ichki satr boshlovchilar yoki qo'shtirnoqlar konvertatsiyadan omon chiqadi.
  • Elektron jadvalga tayyor: natija to'g'ridan-to'g'ri Excel yoki Google Sheets-ga joylashtiriladi, sarlavha ustunlari allaqachon kalitlaringizdan chiqarilgan — ma'lumotlar foydalanish uchun tayyor bo'lishidan oldin qo'lda tozalash shart emas.
  • Moslashuvchanlik: ichma-ich obyektlar uchun yoyish va serializatsiya orasida almashing, vergul bo'lmagan CSV dialektlari uchun istalgan ajratuvchini tanlang va sarlavhalar barcha kalitlardan keladimi yoki faqat birinchi yozuvdanmi — shuni belgilang.

JSON dan CSV ga konvertatsiyaning keng tarqalgan qo'llanilishlari qanday?

JSON-ni CSV-ga yoyish ma'lumotlar bilan ishlash va vositalar bo'ylab har joyda uchraydi:

  • Ma'lumotlarni eksport qilish: API javobini moliya, operatsiya yoki mahsulot jamoangiz kod yozmasdan Excel yoki Google Sheets-da ochishi mumkin bo'lgan CSV fayliga aylantirish.
  • Hisobot: JSON so'rov natijasini pivot jadval, grafik yoki formulalar ustuni uchun elektron jadvalga tashlash. Bu turdagi ish xom JSON ustida og'ir.
  • Elektron jadvalda ko'rib chiqish: ichma-ich JSON konfiguratsiyasini (sozlamalar, funksiya bayroqlari, A/B variantlari) CSV-ga yoyish, shunda texnik bo'lmagan ko'ruvchilar uni katakcha-katakcha o'qib tahrirlashi mumkin.

JSON dan CSV ga misol qanday ko'rinadi?

[{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] ni joylashtiring, ajratuvchini vergulda qoldiring va O'ZGARTIRISH ni bossangiz, uchta satr hosil bo'ladi: name,age sarlavha satri, Alice,30 ma'lumot satri va "Bob, Jr.",25 satri. Ichki vergul sodda qo'shimchani qoqitiradigan narsa — bu yerda RFC 4180 qo'shtirnoq belgilashini ishga tushiradi va katak butun qoladi.

Ushbu JSON dan CSV ga o'zgartirgichi to'liq brauzerimda ishlaydimi?

Ha. Har bir tahlil, yoyish va yozish brauzer ichida JavaScript sifatida lokal tarzda bajariladi. Vosita fetch, XMLHttpRequest yoki navigator.sendBeacon ni umuman chaqirmaydi — JSON yuklaringiz serverlarimizga, uchinchi tomon konvertoriga yoki biror analitika quvuriga yetib bormaydi. Sahifa yuklangandan keyin vosita oflayn ham ishlaydi, chunki u tashqi API'ga bog'liqlik yo'q bo'lgan statik HTML/CSS/JS to'plamidir.

Bu o'zgartirgich qabul qila oladigan eng katta kiritish o'lchami qancha?

O'zgartirgich kiritishni butunlay xotirada buferlaydi va asosiy oqimda sinxron ishlaydi, shuning uchun amaliy chegaralar qurilmangizga bog'liq. Zamonaviy noutbukda taxminan 10 MB gacha JSON massivi (taxminan 100 000 odatiy yozuv) sezilarli pauzasiz o'zgartiriladi. Bundan tashqari, yozuvchi ishlayotganida interfeys to'xtab qolishi mumkin. Web Worker va bo'lakli yozuvchi bilan oqimli konvertatsiya rejalashtirilgan davom; hozircha juda katta ma'lumotlar to'plamlarini joylashtirishdan oldin bo'ling.

Yozuvchi vergul, qo'shtirnoq yoki satr oxiri bo'lgan qiymatlarni qanday boshqaradi?

RFC 4180 bo'yicha. Faol ajratuvchi, ikki qo'shtirnoq, CR yoki LF o'z ichiga olgan har qanday qiymat ikki qo'shtirnoq ichiga olinadi va ichki qo'shtirnoqlar ikkilanadi. Shuning uchun Bob, Jr. kabi ism ikki ustunga to'kilish o'rniga bitta "Bob, Jr." katakka aylanadi va ko'p satrli tavsif satrni buzish o'rniga bitta katakda qoladi. Sodda join(',') bu yerda xato qiladi.

CSV-ga o'tkazilganda ichma-ich JSON obyektlari bilan nima sodir bo'ladi?

Ichma-ich obyektlar Ichma-ich obyektlar almashtirgichiga muvofiq ishlatiladi. Yoyish rejimida (standart) kalitlar nuqta bilan birlashtiriladi — {"user":{"id":1,"city":"Paris"}} user.id va user.city ustunlariga aylanadi. Serializatsiya rejimida ichma-ich obyekt RFC 4180 qo'shtirnoq belgilashi saqlangan holda bitta JSON katakcha qiymati sifatida serializatsiya qilinadi va tuzilishini doiraviy almashish uchun saqlaydi. Obyektlar ichidagi massivlar ikkala rejimda ham JSON sifatida serializatsiya qilinadi.

CSV chiqishi qanday ajratuvchilardan foydalanishi mumkin?

To'rtta: vergul (,, RFC 4180 standarti), nuqta-vergul (;, Yevropa lokallarida keng tarqalgan), tab (\t, TSV dialekti) va vertikal chiziq (|). Manba vositangiz kutayotgan birini tanlang. Yozuvchi tanlangan ajratuvchini o'z ichiga olgan har bir katakni belgilaydi, shuning uchun tanlov hech qachon qiymatni buzmaydi.

Bu JSON dan CSV ga o'zgartirgich massivingizni yoyadi va RFC 4180 ga mos chiqish beradi — uni to'g'ridan-to'g'ri elektron jadvalga, hisobotga yoki kod ko'rib chiqishiga joylashtirish mumkin, bitta ham bayt yubormasdan. Teskari yo'nalish kerakmi? CSV dan JSON ga o'zgartirgich teskari tahlil qiladi.