JSON سے CSV کنورٹر

JSON کو CSV میں آن لائن تبدیل کریں — مفت، فوری اور نجی۔ آپ کی فائل آپ کے براؤزر میں پروسیس ہوتی ہے، کبھی اپ لوڈ نہیں کی جاتی۔

CSV ڈیلیمیٹر
نتیجہ

تبدیل شدہ فائلیں اور پیش نظارہ یہاں ظاہر ہوگا۔

تیار ہے۔ تبدیل کرنے کے لیے ایک ٹیبل فائل منتخب کریں۔

تبدیلی کا عمل کیسے کام کرتا ہے

  • آبجیکٹس کا ایک ارے (array) روز اور کالمز بن جاتا ہے؛ نیسٹڈ آبجیکٹس کو ڈاٹڈ-کی (dotted-key) کالمز جیسے address.city میں فلیٹ کر دیا جاتا ہے۔
  • وہ ڈیلیمیٹر (delimiter) منتخب کریں جو آپ کے ڈیٹا سے مطابقت رکھتا ہو — کوما، سیمی کولن یا ٹیب۔

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

اکثر پوچھے گئے سوالات

میں JSON کو CSV میں کیسے تبدیل کروں؟

اپنی JSON فائل یہاں ڈراپ کریں اور تبدیل کریں پر کلک کریں — CSV فائل سیکنڈوں میں ڈاؤن لوڈ کے لیے تیار ہو جائے گی، اور ساتھ ہی نتیجے کا پیش نظارہ بھی نظر آئے گا۔ سب کچھ آپ کے ڈیوائس پر چلتا ہے۔

میں کتنی بڑی فائل تبدیل کر سکتا ہوں؟

فی فائل 8 MB، 10,000 روز (rows) اور 200 کالمز تک۔ بڑے ڈیٹا سیٹس کو پہلے چھوٹی فائلوں میں تقسیم کرنا بہتر ہے۔

JSON سے CSV میں تبدیلی: ساخت، اصول اور براؤزر پر مبنی پروسیسنگ

یہ صفحہ ایک JSON فائل کو CSV میں تبدیل کرنے کے لیے ڈیزائن کیا گیا ہے۔ آپ فائل کو اپ لوڈ یا ڈریگ اینڈ ڈراپ کر سکتے ہیں، اور پھر ڈیلمیٹر (کوما، سیمیکولن یا ٹیب) منتخب کر کے CSV حاصل کر سکتے ہیں۔ تمام پروسیسنگ آپ کے براؤزر میں ہوتی ہے – کوئی ڈیٹا سرور پر نہیں بھیجا جاتا۔ لیکن اس صفحے کی اصل اہمیت اس تبدیلی کی نوعیت میں ہے: یہ ایک ہائرارکیکل، ٹائپڈ ڈیٹا فارمیٹ (JSON) کو ایک فلیٹ، ان ٹائپڈ ٹیبل (CSV) میں تبدیل کرتا ہے۔ یہی وجہ ہے کہ باقی کنورٹرز (جیسے CSV-to-Excel یا Excel-to-JSON) سے یہ صفحہ بالکل مختلف ہے۔

JSON آبجیکٹس، اریز، نمبرز، بولینز اور null کو نیسٹڈ ڈھانچوں میں سپورٹ کرتا ہے۔ CSV میں نہ تو کوئی ٹائپ ہوتے ہیں، نہ نیسٹنگ، اور نہ ہی متعدد شیٹس۔ جب ہم JSON کو CSV میں تبدیل کرتے ہیں تو تمام ٹائپ کی معلومات، نیسٹڈ ڈھانچہ، اور فارمیٹنگ ختم ہو جاتی ہے۔ اسے فلٹن کرنے کے لیے یہ صفحہ ڈاٹ‑پاتھ نوٹیشن استعمال کرتا ہے – مثلاً address.city۔

JSON اور CSV کے درمیان ساختی فرق

JSON (JavaScript Object Notation) ایک ہائرارکیکل ڈیٹا فارمیٹ ہے۔ اس کا مطلب ہے کہ ایک آبجیکٹ کے اندر دوسرا آبجیکٹ، اور اس کے اندر ایک اور آبجیکٹ – جیسے ایک گھونسلا۔ مثال کے طور پر:

{
  "name": "علی",
  "address": {
    "city": "لاہور",
    "zip": 54000
  }
}

یہاں address ایک نیسٹڈ آبجیکٹ ہے جس کے دو کلید ہیں: city اور zip۔ اسے CSV میں ظاہر کرنے کے لیے، ہمیں address.city اور address.zip جیسے فلیٹ کالم بنانے ہوں گے۔

CSV (Comma-Separated Values) ایک فلیٹ ٹیبلر فارمیٹ ہے۔ ہر قطار ایک ریکارڈ ہے، اور کالمز میں صرف سٹرنگ ویلیوز ہو سکتی ہیں۔ کوئی ٹائپ نہیں: نمبر، بولین، سب سٹرنگ بن جاتے ہیں۔ کوئی نیسٹڈ ڈھانچہ نہیں: ایک کالم میں پورا آبجیکٹ نہیں رکھا جا سکتا۔

جب آپ JSON سے CSV میں جاتے ہیں تو آپ دراصل ہائرارکی کو فلیٹ کر رہے ہوتے ہیں، اور ڈیٹا کی قسم (نمبر، بولین، null) کو ایک عام سٹرنگ میں تبدیل کر رہے ہوتے ہیں۔ یہی وجہ ہے کہ اس تبدیلی میں معلومات کا نقصان ہوتا ہے – لیکن یہ کارآمد بھی ہے کیونکہ بہت سے تجزیاتی اوزار صرف CSV کو سمجھتے ہیں۔

تبدیلی کا عمل: ڈاٹ‑پاتھ اور صف کی ساخت

یہ صفحہ صرف ان JSON فائلوں کو قبول کرتا ہے جو ٹیبل شکل میں ہوں – یعنی یا تو آبجیکٹس کی ایک پرانی صف ہو، یا صفوں کی ایک صف۔ اگر JSON درست نہ ہو یا ٹیبل شکل میں نہ ہو، تو یہ ایرر دکھاتا ہے: "This JSON is invalid or not table‑shaped."

آبجیکٹس کی صف (Array of Objects)

جب JSON آبجیکٹس کی ایک صف ہو (جیسے API سے آرہی ہو)، تو ہر آبجیکٹ ایک قطار بن جاتا ہے، اور آبجیکٹ کے کلید کالمز بن جاتے ہیں۔ نیسٹڈ آبجیکٹس کے لیے، کلید کو ڈاٹ‑پاتھ سے فلیٹ کیا جاتا ہے۔ مثال:

[
  {"name": "علی", "address": {"city": "لاہور", "zip": 54000}},
  {"name": "سارہ", "address": {"city": "کراچی", "zip": 74000}}
]

CSV اس طرح بنے گا:

name address.city address.zip
علی لاہور 54000
سارہ کراچی 74000

یہاں address.city اور address.zip دو الگ کالم ہیں۔ اصل ڈیٹا میں zip نمبر تھا، لیکن CSV میں وہ سٹرنگ "54000" بن گیا۔

صفوں کی صف (Array of Arrays)

اگر JSON صفوں کی صف ہو (جیسے کسی میٹرکس کی نمائندگی)، تو ہر اندرونی صف ایک قطار بن جاتی ہے، اور عناصر کالمز بن جاتے ہیں۔ کوئی آبجیکٹ کلید نہیں ہوتے۔ مثال:

[
  ["علی", 25, true],
  ["سارہ", 30, false]
]

CSV:

Column1 Column2 Column3
علی 25 true
سارہ 30 false

یہاں true اور false بولین تھے، لیکن CSV میں سٹرنگ بن گئے۔

اہم قواعد اور حدود

یہ صفحہ بہت سے اصولوں اور حدود کے ساتھ کام کرتا ہے جو صارفین کو سمجھنے چاہئیں:

1. ڈیٹا کی قسم کا نقصان

JSON میں نمبر (انٹیجر، فلوٹ)، بولین (true/false)، null، اور سٹرنگ ہو سکتے ہیں۔ CSV میں یہ سب سٹرنگ بن جاتے ہیں۔ اس کا مطلب ہے کہ:

  • نمبروں کی ریاضیاتی خصوصیات ختم ہو جاتی ہیں۔
  • بولینز "true"/"false" سٹرنگ بن جاتے ہیں۔
  • null خالی سیل بن جاتا ہے۔

خاص اہم: صفر سے شروع ہونے والے نمبرز (جیسے 00123) CSV میں تبدیل ہوتے وقت صفر کھو سکتے ہیں کیونکہ نمبر کو 123 سمجھا جاتا ہے۔ اگر آپ کو شناختی نمبر یا کوڈ کو سٹرنگ کے طور پر رکھنا ہے، تو پہلے JSON میں انہیں سٹرنگ کے طور پر رکھیں (جیسے "00123")۔

2. CSV کوتیشن کے اصول

CSV میں ڈیلمیٹر (کوما، سیمیکولن یا ٹیب) کو ڈیٹا کے اندر استعمال کرنے کے لیے، پوری ویلیو کو ڈبل کوٹس میں بند کرنا ضروری ہے۔ نیز اگر ویلیو میں لائن بریک ہو تو بھی کوتیشن ضروری ہے۔ یہ صفحہ خود بخود کوتیشن کا اطلاق کرتا ہے۔ مثال:

اگر ویلیو میں کوما ہو: لاہور, پنجاب تو CSV میں "لاہور, پنجاب" بنے گا۔

اگر ویلیو میں ڈبل کوٹ ہو: علی نے کہا "سلام" تو CSV میں "علی نے کہا ""سلام""" بنے گا (ڈبل کوٹ کو ڈبل کرنا)۔

3. فائل سائز اور قطار/کالم کی حدیں

  • فائل سائز کی حد: 8 MB۔ اگر فائل بہت بڑی ہو تو ایرر آئے گا: "This file is too large. Use a file under ‹max›."
  • قطاروں کی حد: 10,000 قطاریں۔
  • کالمز کی حد: 200 کالمز۔
  • اگر تبدیلی میں 12 سیکنڈ سے زیادہ لگیں تو یہ ایرر دکھاتا ہے: "This conversion is taking too long. Try a smaller file."

یہ حدود کلائنٹ سائیڈ پر لاگو ہوتی ہیں، کیونکہ براؤزر میں بہت بڑے ڈیٹا کو ہینڈل کرنا مشکل ہو سکتا ہے۔

4. صرف "ٹیبل شکل" کا JSON

صفحہ صرف ان JSON فائلوں کو قبول کرتا ہے جو ایک پرانی صف (ایک array) ہوں، یا تو آبجیکٹس کی صف یا صفوں کی صف۔ اگر آپ کے پاس سنگل آبجیکٹ ہے (جیسے {"name":"علی"}) تو یہ ایک قطار والی ٹیبل میں تبدیل ہو جائے گا۔

اگر JSON میں پیچیدہ نیسٹنگ ہو (جیسے آبجیکٹ کے اندر اری، اور پھر اس میں دوسرا آبجیکٹ)، تو صفحہ اسے فلیٹ کر دے گا، لیکن صرف ڈاٹ‑پاتھ نوٹیشن کے ساتھ۔ بہت گہری نیسٹنگ سے کالمز کی تعداد بہت زیادہ ہو سکتی ہے، جس سے حد سے تجاوز کا خطرہ ہے۔

پرائیویسی: براؤزر پر مبنی پروسیسنگ

اس صفحے کی سب سے بڑی خوبی یہ ہے کہ تمام پروسیسنگ آپ کے براؤزر میں ہوتی ہے۔ کوئی ڈیٹا سرور پر اپ لوڈ نہیں ہوتا۔ یہ ان صارفین کے لیے اہم ہے جو حساس ڈیٹا (مثلاً ذاتی معلومات، مالیاتی ریکارڈ، یا طبی ڈیٹا) کو تبدیل کرنا چاہتے ہیں اور اس بات پر یقین رکھتے ہیں کہ ڈیٹا سہولت سے باہر نہ جائے۔

یہ ایک عام غلط فہمی ہے کہ تمام آن لائن کنورٹرز ڈیٹا کو اپنے سرورز پر پروسیس کرتے ہیں۔ اس صفحے پر، آپ اپنی فائل کو مقامی طور پر پڑھ سکتے ہیں، تبدیل کر سکتے ہیں، اور پھر نتیجہ ڈاؤن لوڈ کر سکتے ہیں – بغیر کسی نیٹ ورک کنکشن کے (سوائے اس صفحے کو لوڈ کرنے کے)۔

یہ طریقہ کار کے تحت، جب آپ فائل منتخب کرتے ہیں تو براؤزر اسے میموری میں پڑھتا ہے، JSON کو پارس کرتا ہے، اسے فلیٹ کرتا ہے، اور CSV سٹرنگ بنا کر ڈاؤن لوڈ کے لیے تیار کرتا ہے۔

کسے اس کی ضرورت ہے؟

یہ صفحہ ان لوگوں کے لیے ڈیزائن کیا گیا ہے جو:

  • کسی API سے JSON ڈیٹا حاصل کرتے ہیں اور اسے Excel یا Google Sheets میں کھولنا چاہتے ہیں۔
  • ڈیٹا بیس میں ڈیٹا امپورٹ کرنے کے لیے CSV چاہتے ہیں (زیادہ تر ڈیٹا بیس CSV امپورٹ کو سپورٹ کرتے ہیں)۔
  • پرائیویسی کے لحاظ سے حساس ڈیٹا کو سرور پر بھیجے بغیر تبدیل کرنا چاہتے ہیں۔
  • مختلف ڈیلمیٹرز (خاص طور پر سیمیکولن) کی ضرورت رکھتے ہیں، جو کہ یورپی ممالک میں عام ہے جہاں کوما ڈیسیمل سیپریٹر کے طور پر استعمال ہوتا ہے۔
  • ڈیٹا پائپ لائن کے ایک مرحلے میں تیزی سے JSON کو CSV میں تبدیل کرنا چاہتے ہیں، جیسے کہ پروٹوٹائپنگ کے دوران۔

عام مسائل اور ان کا حل

1. صفر سے شروع ہونے والے نمبر

اگر آپ کے JSON میں کوڈ جیسے "00123" (سٹرنگ کے طور پر) ہے، تو وہ CSV میں "00123" ہی رہے گا۔ لیکن اگر وہ نمبر (123) کے طور پر ہے، تو CSV میں "123" بنے گا۔ اس سے بچنے کے لیے، JSON میں ایسے ویلیوز کو سٹرنگ کے طور پر اسٹور کریں۔

2. بڑی فائلیں

اگر فائل بہت بڑی ہو تو براؤزر کریش ہو سکتا ہے۔ بہتر ہے کہ 10,000 قطاروں سے کم رکھیں (اگرچہ حد صفحہ پر ظاہر ہے)۔ اگر بہت بڑی فائل ہے تو اسے چھوٹے ٹکڑوں میں تقسیم کریں۔

3. غیر متوقع ڈیٹا

اگر JSON میں نیسٹڈ آبجیکٹس کے بجائے اریز ہوں تو فلیٹننگ مختلف ہو سکتی ہے۔ مثال کے طور پر، اگر آبجیکٹ کے اندر اری ہو جیسے {"name":"علی", "scores":} تو یہ صفحہ اسے ایک سیل میں JSON ٹیکسٹ کے طور پر رکھے گا۔ صارفین کو اس بات سے آگاہ ہونا چاہیے کہ ان کے ڈیٹا کی ساخت پہلے سے ٹیبلر ہونی چاہیے۔

اکثر پوچھے گئے سوالات (FAQ)

سوال: کیا میں کوما کی بجائے سیمیکولن یا ٹیب استعمال کر سکتا ہوں؟
جواب: جی ہاں۔ صفحہ آپ کو تین ڈیلمیٹرز میں سے انتخاب کرنے دیتا ہے: کوما (,)، سیمیکولن (;)، یا ٹیب (\t)۔ یہ خاص طور پر مفید ہے جب آپ کا علاقہ (لوکیل) کوما کو ڈیسیمل سیپریٹر کے طور پر استعمال کرتا ہے۔

سوال: کیا یہ صفحہ بڑی فائلوں کو سنبھال سکتا ہے؟
جواب: ہاں، لیکن ایک حد ہے۔ اگر فائل 8 MB سے بڑی ہے تو آپ کو ایرر ملے گا: "This file is too large. Use a file under ‹max›." براؤزر کی میموری کی وجہ سے بہت بڑی فائلیں کریش کا سبب بن سکتی ہیں۔

سوال: کیا میرے ڈیٹا کی پرائیویسی محفوظ ہے؟
جواب: بالکل۔ تمام پروسیسنگ آپ کے مقامی براؤزر میں ہوتی ہے۔ کوئی بھی ڈیٹا سرور کو نہیں بھیجا جاتا۔

سوال: اگر میرے JSON میں نیسٹڈ آبجیکٹ ہوں تو کیا ہوگا؟
جواب: انہیں ڈاٹ‑پاتھ نوٹیشن (جیسے address.city) کا استعمال کرتے ہوئے فلیٹ کر دیا جائے گا۔ ہر نیسٹڈ لیول کے لیے نئے کالم بنائے جائیں گے۔

سوال: کیا CSV میں نمبرز بطور نمبر رہیں گے؟
جواب: نہیں۔ CSV میں تمام ویلیوز سٹرنگز بن جاتی ہیں۔ اگر آپ کو نمبرز کو برقرار رکھنا ہے تو آپ کو بعد میں اپنی اسپریڈشیٹ میں تبدیل کرنا ہوگا۔

سوال: کیا اس صفحے پر ایک سے زیادہ JSON شیٹس (sheets) کو تبدیل کیا جا سکتا ہے؟
جواب: نہیں۔ JSON میں شیٹس کا تصور نہیں ہے – یہ صرف آبجیکٹس اور اریز کا مجموعہ ہے۔ ہر JSON فائل صرف ایک CSV فائل میں تبدیل کی جاتی ہے۔ اگر آپ کے پاس متعدد ڈیٹا سیٹ ہیں تو انہیں الگ الگ فائلوں میں تبدیل کرنا ہوگا۔