← speedor.net

ڈیٹا کنورٹرز

مفت ڈیٹا فارمیٹ کنورٹرز: CSV ↔ JSON، JSON ↔ YAML اور JSON ↔ XML۔ فوری، نجی، براہ راست آپ کے براؤزر میں۔

ڈیٹا شاذ و نادر ہی ایک فارمیٹ میں ساکت رہتا ہے۔ کوئی رپورٹ اسپریڈشیٹ کے طور پر آتی ہے، کوئی API JSON چاہتی ہے، کوئی ڈپلائمنٹ پائپ لائن YAML کی توقع رکھتی ہے، اور کہیں تہہ خانے میں ایک پرانی سروس اب بھی XML بولتی ہے۔ ڈیٹا کے ساتھ کام کرنے کی زیادہ تر روزمرہ الجھن خود ڈیٹا نہیں، بلکہ اسے اس شکل سے جو آپ کے پاس ہے اس شکل میں لے جانا ہے جو کوئی اور چیز مانگتی ہے۔ یہی ایک ڈیٹا کنورٹر کا پورا کام ہے: ایک نوٹیشن میں موجود سٹرکچرڈ متن لینا اور اسے معنی کھوئے بغیر کسی دوسری میں دوبارہ پیش کرنا۔

CSV، JSON، YAML، اور XML کے درمیان ڈیٹا منتقل کرنا

ڈیٹا شاذ و نادر ہی ایک فارمیٹ میں ساکت رہتا ہے۔ کوئی رپورٹ اسپریڈشیٹ کے طور پر آتی ہے، کوئی API JSON چاہتی ہے، کوئی ڈپلائمنٹ پائپ لائن YAML کی توقع رکھتی ہے، اور کہیں تہہ خانے میں ایک پرانی سروس اب بھی XML بولتی ہے۔ ڈیٹا کے ساتھ کام کرنے کی زیادہ تر روزمرہ الجھن خود ڈیٹا نہیں، بلکہ اسے اس شکل سے جو آپ کے پاس ہے اس شکل میں لے جانا ہے جو کوئی اور چیز مانگتی ہے۔ یہی ایک ڈیٹا کنورٹر کا پورا کام ہے: ایک نوٹیشن میں موجود سٹرکچرڈ متن لینا اور اسے معنی کھوئے بغیر کسی دوسری میں دوبارہ پیش کرنا۔

Speedor کے کنورٹرز مکمل طور پر آپ کے براؤزر میں چلتے ہیں۔ آپ پیسٹ کرتے ہیں، کلک کرتے ہیں، نتیجہ کاپی کرتے ہیں۔ کچھ بھی اپ لوڈ نہیں ہوتا، کچھ بھی لاگ نہیں ہوتا، اور کچھ بھی آپ کی مشین سے باہر نہیں جاتا۔ کسی بھی ایسے شخص کے لیے جو کبھی گاہک کی برآمد کسی بے ترتیب ویب سائٹ میں ڈالنے سے پہلے ہچکچایا ہو، یہی مقامی-صرف ڈیزائن اصل نکتہ ہے۔

ہر فارمیٹ اصل میں کس کام میں اچھا ہے

ان کے درمیان ادلا بدلی شروع کرنے سے پہلے یہ جاننا مددگار ہے کہ یہ فارمیٹس کیوں بنائے گئے، کیونکہ ہر ایک کسی مختلف کام کے لیے بنایا گیا تھا۔

CSV وہ ہموار، کوما سے جدا گرِڈ ہے جسے اسپریڈشیٹس پسند کرتی ہیں۔ یہ فطرتاً جدولی ہے: قطاریں اور کالمز، کچھ بھی تہہ دار نہیں۔ اسے Excel، Google Sheets، یا Numbers میں کھولیں اور یہ بس کام کرتا ہے۔ نقص یہ ہے کہ CSV کو اقسام کا کوئی تصور نہیں۔ ویلیو 007 ایک سٹرنگ، ایک نمبر، یا زپ کوڈ ہو سکتی ہے، اور CSV آپ کو نہیں بتائے گا کون سا۔

JSON جدید ویب کی مشترکہ زبان ہے۔ تقریباً ہر API جسے آپ کبھی کال کریں گے یہ بولتی ہے۔ JSON تہہ داری، اریز، اور چند حقیقی اقسام (سٹرنگز، نمبرز، بولینز، null) سنبھالتا ہے، جو اسے ایک ہموار ٹیبل سے کہیں زیادہ اظہار خیال کے قابل بناتا ہے۔ یہ کمپیکٹ، مشین دوست، اور ہر جگہ سپورٹڈ ہے۔

YAML JSON کا زیادہ قابلِ مطالعہ کزن ہے۔ یہ بریکٹس کی بجائے انڈینٹیشن استعمال کرتا ہے، تبصروں کی حمایت کرتا ہے، اور عام طور پر کنفیگریشن فائلوں، Docker Compose، Kubernetes مینی فیسٹس، اور CI پائپ لائنز کے لیے پسندیدہ فارمیٹ رہتا ہے۔ جب کسی انسان کو کچھ ہاتھ سے ایڈٹ کرنا ہو، YAML عام طور پر آنکھوں کے لیے زیادہ رحم دل ہوتا ہے۔

XML بزرگ رکنِ اسمبلی ہے۔ طویل، ٹیگز سے بھرا، اور اب بھی انٹرپرائز سسٹمز، SOAP سروسز، مالیاتی پیغام رسانی، اور RSS جیسے دستاویزی معیارات میں گہرائی سے پیوست۔ آپ اس سے نئے پروجیکٹس میں کم ہی ملیں گے، مگر جب آپ کو اس کی ضرورت پڑے تو واقعی پڑتی ہے۔

خیالی چمکتے ڈیٹا بلاکس گہرے نیلگوں اور سیان رنگ میں ایک ساختہ شکل سے دوسری میں تبدیل ہوتے ہوئے
وہی ڈیٹا، دوبارہ بیان کیا گیا: ایک ڈھانچہ بغیر اپنا معنی کھوئے دوسرے میں بہتا ہوا۔

تبدیلیاں اصل میں کہاں ہوتی ہیں

جیسے ہی آپ دیکھنا شروع کریں، منظرنامے کافی ٹھوس ہیں۔ فرض کریں مارکیٹنگ آپ کو 4,000 رابطوں کی ایک اسپریڈشیٹ دیتی ہے اور سائن اپ API صرف JSON ارے قبول کرتی ہے۔ آپ شیٹ کو CSV میں ایکسپورٹ کرتے ہیں، اسے CSV سے JSON سے گزارتے ہیں، اور آپ کے پاس POST کرنے کے لیے تیار پے لوڈ ہے۔ نہ گلو سکرپٹ، نہ pandas، نہ کسی انجینیئر کا انتظار۔

یا آپ اسی API سے JSON کا ایک ٹکڑا واپس کھینچتے ہیں اور اسے ایک ایسی کنفگ فائل میں ڈالنا چاہتے ہیں جسے آپ کی سروس آغاز پر پڑھتی ہے۔ اسے JSON سے YAML سے کنورٹ کریں اور آپ کو کچھ صاف اور کمنٹ ایبل ملتا ہے جو بالکل آپ کی repo میں فٹ بیٹھتا ہے۔ دوسری سمت جانا بھی کام کرتا ہے جب کوئی ٹول صرف JSON قبول کرے مگر آپ کی کنفگ YAML میں ہو۔

اور پھر وہ انٹیگریشن ہے جو کوئی پسند نہیں کرتا: ایک پارٹنر سسٹم جو صرف XML لیتا ہے۔ آپ اپنا پے لوڈ JSON میں بناتے ہیں کیونکہ آپ کی ایپ اسی طرح سوچتی ہے، پھر باؤنڈری پر XML میں کنورٹ کرتے ہیں۔ شکل وہی رہتی ہے، صرف سنٹیکس بدلتا ہے۔

جاننے کے قابل نکات

فارمیٹ کی تبدیلی ہمیشہ lossless نہیں ہوتی، اور اس کے برعکس فرض کرنا بگز کی طرف لے جاتا ہے۔ کچھ چیزیں یاد رکھیں:

CSV اقسام بھول جاتا ہے۔ چونکہ ہر سیل محض متن ہے، نمبرز، بولینز، اور تاریخیں سب سٹرنگز کے طور پر باہر آتی ہیں جب تک کنورٹر آپ کے لیے اندازہ نہ لگائے۔ اگر true کو "true" لفظ کی بجائے ایک بولین ہونا ضروری ہے، تو اسے بھیجنے سے پہلے آؤٹ پٹ چیک کریں۔

YAML خالی جگہ کی پرواہ کرتا ہے۔ YAML میں انڈینٹیشن سجاوٹی نہیں، یہ ڈھانچہ جاتی ہے۔ ایک بھٹکی ہوئی اسپیس یہ بدل سکتی ہے کہ ویلیو کس کلید سے تعلق رکھتی ہے، اور ٹیبز کو سراسر منع کیا جاتا ہے۔ کسی بھی JSON سے YAML راؤنڈ ٹرپ کے بعد، ایک فوری نظر ڈالنا مفید ہے، یا نتیجے کو دوبارہ JSON فارمیٹر سے گزار کر تصدیق کریں کہ ڈھانچہ بچ گیا۔

XML اور JSON صاف طریقے سے میل نہیں کھاتے۔ JSON میں اریز ہیں؛ XML میں دہرائے گئے عناصر ہیں۔ JSON میں کہیں attributes نہیں؛ XML میں یہ ہر جگہ ہیں۔ زیادہ تر کنورٹرز ایک معقول اصطلاح چنتے ہیں، مگر اگر آپ کا XML بھاری طور پر attributes استعمال کرے، تو اس سے بننے والی JSON ہاتھ سے لکھی JSON سے تھوڑی مختلف نظر آئے گی۔ یہ متوقع ہے، کوئی نقص نہیں۔

تہہ داری کی گہرائی اہم ہے۔ CSV ہموار ہے، تو گہرائی سے تہہ دار JSON ہمیشہ کلیدوں کو ہموار کیے بغیر کالمز میں نہیں سما سکتی (سوچیں address.city)۔ دوسری سمت جانے پر، ایک ہموار CSV ایک ہموار ارے بنتا ہے، کبھی ایک ٹری نہیں۔

ایک چمکتے ڈیٹا ٹیبل کی قطاریں نیوی، سیان اور سنہرے رنگ میں بریکٹس کے تہہ دار درخت میں بدلتی ہوئی
ہموار قطاریں ایک تہہ دار درخت میں کھلتی ہوئیں: وہی ریکارڈز، ایک زیادہ بھرپور شکل۔

یہاں مقامی-صرف کیوں اہم ہے

بہت سا ڈیٹا جسے آپ کنورٹ کرنا چاہتے ہیں شیئر کرنے کے لیے آپ کا نہیں ہوتا۔ صارف ریکارڈز، اندرونی کنفگز، کسی رسپانس میں دبی ہوئی API چابیاں، مالیاتی قطاریں۔ بہت سے آن لائن کنورٹرز خاموشی سے آپ کا پیسٹ سرور کو بھیج کر کام کرتے ہیں۔ Speedor ایسا نہیں کرتا۔ تبدیلی کا منطق آپ کے براؤزر ٹیب میں چلتا ہے، ڈیٹا کبھی نیٹ ورک عبور نہیں کرتا، اور ٹیب بند کرنا ہی وہ صفائی ہے جو موجود ہے۔ یہ تیز بھی ہے، کیونکہ کوئی اپ لوڈ راؤنڈ ٹرپ نہیں، اور صفحہ لوڈ ہونے کے بعد یہ آف لائن بھی کام کرتا ہے۔ مفت، بغیر سائن اپ، بغیر کوٹا۔

اکثر پوچھے جانے والے سوالات

کیا میرا ڈیٹا کنورٹ کرتے وقت کہیں اپ لوڈ ہوتا ہے؟

نہیں۔ ہر تبدیلی آپ کے براؤزر میں جاوا اسکرپٹ استعمال کرتے ہوئے مقامی طور پر چلتی ہے۔ آپ کا ڈیٹا کبھی آپ کے آلے سے باہر نہیں جاتا اور کبھی سرور کو نہیں بھیجا جاتا، یہی وجہ ہے کہ یہ ٹولز آف لائن بھی کام کرتے ہیں۔

کیا میں بغیر کوئی کوڈ لکھے CSV کو JSON میں بدل سکتا ہوں؟

جی ہاں۔ اپنا CSV کنورٹر میں پیسٹ کریں، کنورٹ پر کلک کریں، اور نتیجے میں بننے والا JSON ارے کاپی کریں۔ پہلی قطار کو کالم ہیڈرز سمجھا جاتا ہے، جو ہر آبجیکٹ کی کلیدیں بن جاتی ہیں۔

میری کنورٹ شدہ JSON نمبروں کو سٹرنگز کے طور پر کیوں دکھاتی ہے؟

CSV کو ڈیٹا اقسام کا کوئی تصور نہیں، تو ہر ویلیو متن کے طور پر شروع ہوتی ہے۔ کچھ کنورٹرز خود کار طریقے سے نمبرز اور بولینز پہچاننے کی کوشش کرتے ہیں، مگر شک کی صورت میں وہ ویلیوز کو سٹرنگز کے طور پر رکھتے ہیں تاکہ زپ کوڈز یا آگے صفر والے IDs جیسی چیزیں بگاڑنے سے بچا جا سکے۔

JSON اور YAML میں کیا فرق ہے؟

وہ ایک جیسی قسم کا ڈیٹا ظاہر کرتے ہیں، مگر YAML بریسز اور بریکٹس کی بجائے انڈینٹیشن استعمال کرتا ہے، تبصروں کی اجازت دیتا ہے، اور عام طور پر لوگوں کے لیے پڑھنا اور ایڈٹ کرنا آسان ہوتا ہے۔ JSON زیادہ کمپیکٹ ہے اور زیادہ تر ویب APIs کے لیے پہلی پسند ہے۔

کیا ان فارمیٹس کے درمیان تبدیلی ہمیشہ lossless ہوتی ہے؟

عام طور پر، مگر ہمیشہ نہیں۔ JSON، YAML، اور XML زیادہ تر معاملات میں ایک دوسرے سے اچھی طرح میل کھاتے ہیں۔ سب سے مشکل جوڑ CSV ہے، جو ہموار اور بغیر قسم کا ہے، اور XML، جو attributes اور دہرائے گئے عناصر کو JSON اریز سے مختلف طریقے سے سنبھالتا ہے۔ اہم ڈیٹا کے لیے ہمیشہ آؤٹ پٹ چیک کریں۔

کیا یہ کنورٹرز بڑی فائلوں پر کام کرتے ہیں؟

یہ زیادہ تر روزمرہ فائلوں کو آرام سے سنبھالتے ہیں کیونکہ کام آپ کی اپنی مشین پر ہوتا ہے۔ کارکردگی سرور کی بجائے آپ کے آلے پر منحصر ہے، تو بہت بڑی فائلیں بنیادی طور پر آپ کے براؤزر کی میموری تک محدود ہوتی ہیں۔