CSV to JSON کنورژن کیا ہے؟
CSV (کاما سے علیحدہ ویلیوز، RFC 4180) ایک سپاٹ، جدولی ٹیکسٹ فارمیٹ ہے؛ JSON (JavaScript Object Notation، RFC 8259) منظم ڈیٹا کے لیے درخت نما ٹیکسٹ فارمیٹ ہے۔ CSV کو JSON میں تبدیل کرنے سے اسپریڈشیٹ-دوست ٹیبل API-دوست آبجیکٹس کی اری میں بدل جاتا ہے — ہر روی کے لیے ایک آبجیکٹ، ہیڈر روی کیز فراہم کرتی ہے — بغیر کوئی سیل دوبارہ ٹائپ کیے۔
CSV to JSON کنورژن کیسے کام کرتی ہے؟
ہر کنورژن مقامی طور پر آپ کے براؤزر میں چلتی ہے۔ بلند سطحی مراحل یہ ہیں:
- آپ CSV ان پٹ پین میں پیسٹ کرتے ہیں اور CONVERT دباتے ہیں؛ ٹول ٹیکسٹ پارس کرتا ہے اور آؤٹ پٹ پین میں JSON آبجیکٹس کی اری نکالتا ہے۔
- ایک کریکٹر بہ کریکٹر اسٹیٹ مشین (FIELD_START → IN_UNQUOTED_FIELD یا IN_QUOTED_FIELD) ان پٹ پر چلتی ہے،
""کوٹڈ کوٹ ایسکیپ کا احترام کرتی ہے،\r\nاور\nدونوں روی ٹرمینیٹرز کو پہچانتی ہے، اور درمیانی نمائندگی کے طور پر سٹرنگز کی 2-D اری تیار کرتی ہے۔ - اگر پہلی روی ہیڈر ہے تو اس کے سیل آبجیکٹ کیز بن جاتے ہیں؛ ورنہ ٹول مصنوعی
field0،field1، … کیز بناتا ہے تاکہ ہر روی ایک مکمل آبجیکٹ پر میپ ہو۔ - ڈیلیمیٹر (کاما، سیمی کولن، ٹیب، پائپ، یا خودکار شناخت) اور ٹائپ کوئرشن (نمبر / بولین /
null) قابل ترتیب ہیں۔ کوئرشن آن کے ساتھ30نمبر 30 بن جاتا ہے اورtrueبولین؛ آف کے ساتھ ہر سیل سٹرنگ رہتا ہے۔ - آؤٹ پٹ صرف پڑھنے والے ٹیکسٹ ایریا میں
JSON.stringifyسے فارمیٹ شدہ ٹیکسٹ کے طور پر لکھا جاتا ہے، اور ڈاؤن لوڈ لنکapplication/json;charset=utf-8MIME ٹائپ کے ساتھBlobبناتا ہے تاکہ آپ نتیجہ ایک کلک سے محفوظ کر سکیں۔
اس ٹول سے CSV کو JSON کیوں بدلیں؟
- رازداری: ہر پارس اور ٹرانسفارم آپ کے براؤزر میں ہوتا ہے۔ ڈیٹا کبھی ہمارے سرورز تک نہیں پہنچتا۔
- درستگی: CSV پارسر ایک حقیقی اسٹیٹ مشین ہے۔ کوٹڈ کاما (
"Bob, Jr.")، ایمبیڈڈ نئی لائنیں اور ایسکیپڈ کوٹس ایک سیل میں پارس ہوتے ہیں، تین میں نہیں — سادہsplit(',')تنفیذات یہاں غلطی کرتی ہیں۔ - قسم کی وفاداری: اختیاری کوئرشن عددی اور بولین سیلز کو حقیقی JSON نمبرز اور بولینز میں بدلتا ہے، اس لیے آپ کو ملنے والی اری دوسرے صفائی پاس کے بغیر براہ راست استعمال کے لیے تیار ہے۔
- لچک: غیر کاما CSV لہجوں کے لیے کوئی بھی ڈیلیمیٹر چنیں، ڈیسائیڈ کریں کہ آیا پہلی روی ہیڈر ہے، اور ان صورتوں کے لیے ٹائپ کوئرشن ٹوگل کریں جہاں ہر سیل کو سٹرنگ رہنا چاہیے۔
CSV to JSON کنورژن کے عام استعمال کیا ہیں؟
CSV کو JSON میں پارس کرنا ڈیٹا کے کام اور ٹولنگ میں ہر جگہ نظر آتا ہے:
- API ماکنگ: سپریڈشیٹ سے ایکسپورٹ شدہ CSV فکسچر پیسٹ کرنا اور اسے JSON اری میں تبدیل کرنا جسے آپ کا مقامی سرور ماک شدہ اینڈ پوائنٹ کے طور پر واپس بھیج سکے۔
- ڈیٹا امپورٹ: سپریڈشیٹ ایکسپورٹ (رابطے، انوینٹری، سروے جوابات) کو JSON اری میں تبدیل کرنا جسے آپ کی ایپلیکیشن یا سکرپٹ CSV پارسر انحصار کے بغیر دہرا سکے۔
- کانفگ ایڈیٹنگ: غیر تکنیکی جائزہ کاروں کو سیل بہ سیل سپریڈشیٹ میں سیٹنگز یا فیچر فلیگز ترمیم کرنے دینا، پھر محفوظ CSV کو JSON میں تبدیل کرنا جو آپ کی ایپ اصل میں لوڈ کرتی ہے۔
CSV to JSON مثال کیسی دکھتی ہے؟
پہلی لائن پر name,age، دوسری پر Alice,30، اور تیسری پر "Bob, Jr.",25 پیسٹ کرنا، پھر کاما ڈیلیمیٹر، پہلی روی کیز کے طور پر، اور ٹائپ کوئرشن آن کے ساتھ CONVERT دبانا [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] نکالتا ہے — "Bob, Jr." میں کوٹڈ کاما ایک فیلڈ میں رہتا ہے، اور عمر حقیقی JSON نمبر بن جاتی ہے۔
کیا یہ CSV to JSON کنورٹر مکمل طور پر میرے براؤزر میں چلتا ہے؟
ہاں۔ ہر پارس اور ٹرانسفارم آپ کے براؤزر ٹیب کے اندر جاوا اسکرپٹ کے طور پر مقامی طور پر چلتا ہے۔ ٹول fetch، XMLHttpRequest یا navigator.sendBeacon کو بالکل کال نہیں کرتا — آپ کے CSV پے لوڈز کبھی ہمارے سرورز، کسی تیسرے فریق کے کنورٹر یا کسی تجزیاتی پائپ لائن تک نہیں پہنچتے۔ ٹول صفحہ لوڈ ہونے کے بعد آف لائن بھی کام کرتا ہے، کیونکہ یہ بغیر کسی رن ٹائم API انحصار کے ایک سٹیٹک HTML/CSS/JS بنڈل ہے۔
یہ کنورٹر زیادہ سے زیادہ کتنا بڑا ان پٹ سنبھال سکتا ہے؟
کنورٹر مکمل ان پٹ کو میموری میں بفر کرتا ہے اور مین تھریڈ پر سنکرونس طور پر چلتا ہے، لہٰذا عملی حدود آپ کے ڈیوائس پر منحصر ہیں۔ تقریباً 10 MB تک CSV (تقریباً 100,000 عام رویز) جدید لیپ ٹاپ پر نمایاں رکاوٹ کے بغیر تبدیل ہو جاتی ہے۔ اس سے آگے UI اس وقت رک سکتا ہے جب پارسر چلتا ہے۔ Web Worker اور چنک شدہ پارسر کا استعمال کرتے ہوئے سٹریم شدہ کنورژن منصوبہ بند فالو اپ ہے — فی الحال، پیسٹ کرنے سے پہلے بہت بڑے ڈیٹاسیٹس کو تقسیم کریں۔
CSV to JSON پارسر کوٹڈ کاما اور ایمبیڈڈ نئی لائنوں کو کیسے سنبھالتا ہے؟
پارسر ایک کریکٹر بہ کریکٹر اسٹیٹ مشین ہے جس کی تین حالتیں ہیں (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD) — سادہ split(',') نہیں۔ ڈبل کوٹس میں لپٹا ہوا فیلڈ ڈیلیمیٹر، CR، LF یا "" کے طور پر ایسکیپڈ ایک لٹرل ڈبل کوٹ پر مشتمل ہو سکتا ہے، فیلڈ کی حدود توڑے بغیر۔ لہٰذا "Bob, Jr.",25 تین کے بجائے دو فیلڈز میں پارس ہوتا ہے، اور رویز پر کوٹڈ کثیر لائن وضاحت ایک سیل میں پارس ہوتی ہے۔
JSON آؤٹ پٹ میں نمبر، بولین اور خالی سیلز کیسے ٹائپ ہوتے ہیں؟
ٹائپنگ ٹائپ کوئرشن ٹوگل سے کنٹرول ہوتی ہے۔ کوئرشن آن (ڈیفالٹ) کے ساتھ نمبر جیسا سیل JSON نمبر بن جاتا ہے، true/false بولین، اور لٹرل null JSON null؛ باقی سب سٹرنگ رہتے ہیں۔ کوئرشن آف کے ساتھ مواد چاہے کچھ بھی ہو ہر ویلیو سٹرنگ رہتی ہے — اگر لیڈنگ زیرو، فون نمبر یا ID کوڈ محفوظ رکھنے ہوں تو یہ مفید ہے۔ مختصر روی میں پیچھے کے خالی سیل خالی سٹرنگ کے طور پر نکالے جاتے ہیں تاکہ ہر آبجیکٹ میں پوری کیز ہوں۔
CSV کا حصہ کن ڈیلیمیٹرز کو سپورٹ کرتا ہے؟
چار واضح ڈیلیمیٹرز سپورٹ کیے جاتے ہیں: کاما (, RFC 4180 ڈیفالٹ)، سیمی کولن (; یورپی لوکیلز میں عام)، ٹیب (\t TSV لہجہ) اور پائپ (|)۔ آپ خودکار شناخت بھی منتخب کر سکتے ہیں، جو ان پٹ کے پہلے 4 KB میں کوٹڈ علاقوں کے باہر ہر امیدوار کی موجودگیوں کو گنتی ہے اور سب سے زیادہ بار آنے والے کو چنتی ہے جو پہلی پانچ رویز میں مستقل کالم گنتی دیتا ہے۔
یہ CSV to JSON کنورٹر ایک حقیقی اسٹیٹ مشین سے پارس کرتا ہے اور صاف، استعمال کے لیے تیار JSON دیتا ہے جسے آپ براہ راست API کال، سکرپٹ یا کوڈ ریویو میں پیسٹ کر سکتے ہیں — بغیر ایک بائٹ بھی اپلوڈ کیے۔