JSON کو CSV میں تبدیل کریں
API ریسپانسز، ایکسپورٹس اور JSON Lines کو ایسی CSV میں بدلیں جو Excel میں صاف کھلے — ریکارڈز خود ڈھونڈ لیے جاتے ہیں، نیسٹڈ فیلڈز پڑھنے کے قابل کالمز میں فلیٹ ہوتی ہیں، اور بڑی IDs ہندسہ بہ ہندسہ برقرار رہتی ہیں۔
- کبھی محفوظ نہیں کی جاتی
- نہ قطار، نہ انتظار
- نہ سائن اپ، نہ واٹر مارک
یہ کیسے کام کرتا ہے
JSON شامل کریں
.json یا .jsonl فائل ڈراپ کریں، یا JSON سیدھا باکس میں پیسٹ کریں۔
ریکارڈز منتخب کریں
ریکارڈز کی فہرست خود بخود ڈھونڈ لی جاتی ہے، چاہے وہ data.items کے اندر گہرائی میں ہو۔ منتخب کریں کہ arrays کیسے لکھی جائیں اور پیش نظارہ چیک کریں۔
ڈاؤن لوڈ کریں
آپ کی ضرورت کے ڈیلیمیٹر اور انکوڈنگ والی CSV، جو Excel، Google Sheets یا ڈیٹا بیس کے لیے تیار ہو۔
درخت کو گرڈ میں فلیٹ کرنا
JSON ایک درخت ہے اور CSV ایک مستطیل، اور پوری کنورژن یہی سوال ہے کہ ایک دوسرا کیسے بنے۔ صاف صورت آبجیکٹس کی ایسی array ہے جن سب کی کیز ایک جیسی ہوں — ہر آبجیکٹ ایک رو، ہر کی ایک کالم، اور کچھ ضائع نہیں ہوتا۔ زیادہ تر API ریسپانسز اور ایکسپورٹس ایسے ہی ہوتے ہیں، اسی لیے یہ عموماً بس چل جاتا ہے۔ ہر مشکل ان دستاویزات سے آتی ہے جن کی شکل ایسی نہیں۔
نیسٹڈ آبجیکٹس ان کی کیز جوڑ کر فلیٹ کیے جاتے ہیں، اس لیے کسی کسٹمر کے اندر کا address آبجیکٹ address.city اور address.postcode جیسے کالمز بن جاتا ہے — ایک ایسا رواج جسے ہر اسپریڈشیٹ سنبھالتی ہے اور کوئی معیار طے نہیں کرتا۔ جو کیز کچھ آبجیکٹس میں ہوں اور کچھ میں نہیں، وہ ایسے کالمز بنتی ہیں جو ان رو میں خالی ہوتے ہیں جن میں وہ کیز نہیں تھیں، اور یہی صحیح جواب ہے: متبادل یہ ہے کہ وہ ڈیٹا ہٹا دیا جائے جو صرف کچھ ریکارڈز میں ہے۔
نیسٹڈ arrays وہ جگہ ہیں جہاں گرڈ واقعی ساتھ نہیں دے سکتا۔ جس ریکارڈ کے اندر تین آرڈر لائنز ہوں وہ فہرست والی ایک رو ہے، تین رو نہیں — اسے تین بنانے سے ہر دوسری فیلڈ دہرائی جائے گی اور ڈیٹا کا مطلب خاموشی سے بدل جائے گا۔ اس لیے آبجیکٹس کی ایک array کو رو میں پھیلایا جاتا ہے اور باقی کو ان کے سیل میں ٹیکسٹ کے طور پر لکھا جاتا ہے۔ اگر آپ کو آرڈرز کے بجائے آرڈر لائنز چاہییں تو کنورژن کو اسی array کی طرف موڑیں؛ جس درخت میں دو فہرستیں ساتھ ساتھ ہوں اس کا کوئی ایک درست مستطیل نہیں، اور ایک کو چننا ایسا فیصلہ ہے جو صرف آپ کر سکتے ہیں۔
باہر نکلتے وقت دو تفصیلات مسئلہ بنتی ہیں۔ کوما، کوٹ مارک یا لائن بریک والی ویلیوز کو کوٹ کیا جاتا ہے تاکہ وہ سلامت رہیں — جو درست CSV ہے مگر خام فائل دیکھیں تو عجیب لگتا ہے۔ اور لمبا عددی شناختی نمبر CSV کے اسپریڈشیٹ تک پہنچتے ہی خطرہ بن جاتا ہے: Excel اسے نمبر کے طور پر پڑھے گا، پندرہ ہندسوں کے بعد راؤنڈ کر دے گا اور شروع کا صفر ہٹا دے گا، جو کنورژن کا نہیں بلکہ اسپریڈشیٹ کا پیدا کردہ مسئلہ ہے۔
جب آپ کو کچھ اور چاہیے
جب شکل کا اندازہ لگانے کے بجائے اسے طے کرنا ہو تو jq صحیح ٹول ہے: jq -r '.orders[] | [.id, .customer.name, .total] | @csv' بالکل وہی فیلڈز بالکل اسی لیول سے چنتا ہے جو آپ چاہتے ہیں، اور یہ وہ کنٹرول ہے جو کوئی خودکار فلیٹنر نہیں دے سکتا۔ یہ اسٹریم بھی کرتا ہے، اس لیے فائل کا سائز کوئی مسئلہ نہیں رہتا۔
عام طور پر نیسٹڈ ڈیٹا کے لیے Miller — mlr --ijson --ocsv flatten — اور Python کا pandas.json_normalize آپ کو واضح کنٹرول دیتے ہیں کہ کتنی گہرائی تک فلیٹ کرنا ہے اور فہرستوں کے ساتھ کیا کرنا ہے۔ اور اگر JSON ٹیبل جیسا نہیں بلکہ واقعی درجہ بہ درجہ ہے تو اسے CSV میں تبدیل کرنا شاید سرے سے غلط خیال ہو — ڈیٹا بیس یا لائن ڈیلیمیٹڈ JSON فائل وہ ساخت برقرار رکھتی ہے جسے گرڈ ضائع کرنے والا ہے۔
اکثر پوچھے جانے والے سوالات
نیسٹڈ JSON کالمز کیسے بنتا ہے؟
ہر نیسٹڈ فیلڈ ایک کالم بن جاتی ہے جس کا نام اس کا راستہ ہوتا ہے: {"address": {"city": "Oslo"}} سے address.city نام کا کالم بنتا ہے۔ کالمز حروف تہجی کی ترتیب میں نہیں بلکہ اسی ترتیب میں آتے ہیں جس میں وہ آپ کے ڈیٹا میں پہلی بار آتے ہیں، اور جن ریکارڈز میں کوئی فیلڈ نہ ہو ان کا وہ سیل بس خالی رہتا ہے۔
arrays کا کیا ہوتا ہے؟
یہ آپ طے کرتے ہیں: ویلیوز کو ایک سیل میں جوڑیں ("red; green")، انہیں نمبر والے کالمز میں پھیلائیں (tags.0، tags.1)، انہیں JSON ٹیکسٹ کے طور پر رکھیں، یا — آرڈر لائنز جیسی آبجیکٹس کی array کے لیے — ہر آئٹم کی الگ رو لکھیں جس میں پیرنٹ فیلڈز دہرائی جائیں۔
کیا بڑے نمبر بالکل درست رکھے جاتے ہیں؟
جی ہاں۔ وہ IDs جو JavaScript کی گنجائش سے باہر ہوں — Twitter، Discord اور 64-bit ڈیٹا بیس IDs — ہندسہ بہ ہندسہ کاپی کی جاتی ہیں، جبکہ زیادہ تر کنورٹرز خاموشی سے 1234567890123456789 کو 1234567890123456800 کر دیتے ہیں۔
کیا JSON Lines (NDJSON) سپورٹڈ ہے؟
جی ہاں۔ ہر لائن میں ایک JSON آبجیکٹ والی فائل خود بخود پہچان لی جاتی ہے، اور ہر لائن ایک رو بن جاتی ہے۔
اگر میرے JSON میں کوئی خرابی ہو تو؟
آپ کو بالکل درست لائن اور کالم ملتا ہے، غلط ٹیکسٹ ہائی لائٹ کر کے، اور ایک سادہ وضاحت — مثلاً آخر میں فالتو کوما، یا JavaScript کوڈ سے کاپی کیے گئے سنگل کوٹس۔
کیا میرا ڈیٹا کہیں محفوظ کیا جاتا ہے؟
نہیں۔ JSON یہیں پڑھا جاتا ہے اور CSV یہیں لکھی جاتی ہے؛ کچھ بھی کہیں نہیں بھیجا جاتا اور کچھ بھی محفوظ نہیں کیا جاتا۔
جاننا مفید ہے: ایک وقت میں آبجیکٹس کی صرف ایک array کو رو میں پھیلایا جا سکتا ہے؛ باقی arrays اپنے سیل میں لکھی جاتی ہیں۔ بہت بڑی فائلیں آپ کے براؤزر کی میموری سے محدود ہیں۔
یہ ٹول اپنی ویب سائٹ پر لگائیں
کسی بھی بلاگ، کلاس پیج یا ہیلپ آرٹیکل کے لیے مفت۔ ایک اسنیپٹ پیسٹ کریں اور آپ کے وزیٹرز اسے سیدھا آپ کے صفحے پر استعمال کر سکیں گے۔