JSON سے CSV کنورٹر
بائیں طرف آبجیکٹس کی JSON ایرے پیسٹ کریں، دائیں طرف درست طریقے سے کوٹ شدہ CSV حاصل کریں۔ ہیڈر کیز سے بنتا ہے۔ کوئی اپ لوڈ نہیں۔
- بائیں طرف کے ٹیکسٹ ایریا میں آبجیکٹس کی JSON ایرے پیسٹ کریں۔
- "CSV میں تبدیل کریں" پر کلک کریں۔ ہیڈر قطار آبجیکٹ کیز کے یونین سے بنتی ہے۔
- نتیجہ کاپی کریں یا data.csv کے طور پر ڈاؤن لوڈ کریں۔
- نیسٹڈ ویلیوز کے لیے فیلڈ JSON-سٹرنگ بن جاتی ہے — اگر فلیٹ کالم چاہیے تو پہلے فلیٹ کر لیں۔
یہ کیا کرتا ہے؟
JSON آبجیکٹس کی ایرے کو RFC 4180 CSV میں تبدیل کرتا ہے۔ ہیڈر قطار تمام آبجیکٹس کی تمام کیز کا یونین ہے۔ جن ویلیوز میں کاما، کوٹ یا نئی لائن ہو انہیں CSV-کوٹ کیا جاتا ہے۔ نمبر اور بولین بغیر کوٹ کے نکلتے ہیں؛ null اور undefined خالی فیلڈ بن جاتے ہیں۔ نیسٹڈ ویلیوز (آبجیکٹس، ایرے) کو ایک واحد کوٹ شدہ JSON-سٹرنگ فیلڈ میں تبدیل کر دیا جاتا ہے — CSV درجہ بندی کو نیٹیولی نہیں دکھا سکتا۔
مثال
JSON ان پٹ:
[
{"name":"Ada","age":36,"role":"engineer"},
{"name":"Grace","age":40,"role":"scientist"}
] CSV آؤٹ پٹ:
name,age,role
Ada,36,engineer
Grace,40,scientist عام JSON سے CSV کے مسائل
CSV ایک فلیٹ فارمیٹ ہے۔ زیادہ تر "عجیب" آؤٹ پٹ ان JSON شکلوں سے آتا ہے جن کی فلیٹ نمائندگی نہیں ہوتی۔
- ٹاپ-لیول ایرے نہیں ہے۔ JSON آبجیکٹ `{"a":1,"b":2}` کو براہ راست CSV میں تبدیل نہیں کیا جا سکتا — اسے ایرے میں لپیٹیں: `[{"a":1,"b":2}]`۔ CSV میں ایک ہیڈر قطار اور ایک ڈیٹا قطار ہوگی۔
- قطاروں میں مختلف کیز۔ اگر پہلے آبجیکٹ میں `{a,b}` اور دوسرے میں `{a,c}` ہو تو ہیڈر یونین `a,b,c` بنے گا۔ جن قطاروں میں کوئی کی نہیں ہوگی وہ خالی فیلڈ نکالیں گی۔ زیادہ سخت اسکیما چاہیں تو پہلے پری-پروسیس کریں۔
- نیسٹڈ ویلیوز خاموشی سے فلیٹ ہوتی ہیں۔ `{"address":{"city":"NY"}}` جیسا فیلڈ ایک CSV کالم بنتا ہے جس کی ویلیو JSON سٹرنگ `{"city":"NY"}` ہوتی ہے۔ علیحدہ `address.city` کالم کے لیے پہلے JavaScript میں فلیٹ کریں: `{address_city: row.address.city}`۔
- ویلیوز میں ایمبیڈڈ نئی لائن۔ JSON ویلیو میں ملٹی-لائن سٹرنگ ایک کوٹ شدہ CSV فیلڈ بن جاتی ہے جس کے کوٹس کے اندر لٹرل `\n` ہوتے ہیں۔ زیادہ تر اسپریڈشیٹ ایپس درست طریقے سے ہینڈل کرتے ہیں؛ کچھ پرانے ٹولز نہیں۔
- ہیڈرز میں خاص حروف۔ کاما، کوٹ یا نئی لائن والی JSON کیز کام کرتی ہیں لیکن ایسا ہیڈر بناتی ہیں جسے کچھ CSV کنزیومرز ٹھیک سے پارس نہیں کرتے۔ زیادہ سے زیادہ مطابقت کے لیے تبدیل کرنے سے پہلے کیز کا نام الفانیومیرک + انڈر اسکور پر رکھیں۔
- JSON میں آخری کاما۔ `[{"a":1},]` غلط JSON ہے (آخری عنصر کے بعد ٹریلنگ کاما)۔ پارسر CSV مرحلے سے پہلے ہی اسے رد کر دیتا ہے۔ زیادہ تر JSON فارمیٹرز اسے ہٹا دیتے ہیں — اگر ضرورت ہو تو پہلے `/json-prettifier` کے ذریعے گزاریں۔
اکثر پوچھے جانے والے سوالات
ٹیب-علیحدہ آؤٹ پٹ (TSV) کیسے حاصل کروں؟
یہ صفحہ کاما-علیحدہ CSV نکالتا ہے۔ TSV کے لیے نتیجے میں `,` کو `\t` سے بدلیں یا کمانڈ لائن پر `delimiter: "\t"` کے ساتھ PapaParse چلائیں — وہی لائبریری۔
کیا ہیڈر قطار میں کیز کی ترتیب محفوظ رہتی ہے؟
جی ہاں — ہیڈر قطار اس ترتیب کا استعمال کرتی ہے جس میں کیز تمام آبجیکٹس میں پہلی بار ظاہر ہوتی ہیں۔ حروف تہجی کی ترتیب چاہیے تو پیسٹ کرنے سے پہلے JSON میں کیز سورٹ کر لیں۔
تاریخیں کیسے ہینڈل ہوتی ہیں؟
JSON میں نیٹیو Date قسم نہیں — تاریخیں عام طور پر پہلے ہی ISO 8601 سٹرنگز کے طور پر سیریلائز ہوتی ہیں۔ وہ بغیر تبدیلی گزر جاتی ہیں۔ اگر آپ کا JSON JSON.stringify سے Date آبجیکٹ سے آیا ہے تو وہ اسی وقت ISO سٹرنگ میں تبدیل ہو چکا تھا۔
کیا میں JSON → CSV → JSON راؤنڈ-ٹرپ کر سکتا ہوں؟
فلیٹ-ایرے-آف-فلیٹ-آبجیکٹس ڈیٹا کے لیے، جی ہاں۔ سٹرنگز سٹرنگز رہتی ہیں، نمبرز نمبرز رہتے ہیں (PapaParse کی متحرک ٹائپنگ کے ساتھ امپورٹ پر)۔ نیسٹڈ ویلیوز CSV کی طرف ساخت کھو دیتی ہیں اور JSON-سٹرنگ فیلڈز کے طور پر واپس آتی ہیں، دوبارہ نیسٹڈ آبجیکٹس کے طور پر نہیں۔
کیا میرا JSON اپ لوڈ ہوتا ہے؟
نہیں۔ سب کچھ آپ کے براؤزر میں چلتا ہے — آپ کا JSON اس صفحے کے JavaScript کے ذریعے پارس اور تبدیل ہوتا ہے اور کبھی کسی سرور پر نہیں بھیجا جاتا۔ براؤزر ڈویلپر ٹولز میں تصدیق کریں۔
کتنی بڑی JSON فائل تبدیل کر سکتا ہوں؟
تقریباً 50 MB تک — اس کے بعد براؤزر ٹیکسٹ ایریا سست محسوس ہونے لگتا ہے۔ خود تبدیلی ان پٹ سائز کے ساتھ لکیری طور پر اسکیل ہوتی ہے؛ بوتل نیک رینڈرنگ ہے۔ بڑی فائلوں کے لیے کمانڈ لائن پر PapaParse چلائیں۔