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

آپ کے آلے پر چلتا ہے · آپ کی فائل آپ کے آلے سے باہر نہیں جاتی۔

.json فائل ڈالیں یا API کے جواب سے JSON سیدھا پیسٹ کریں اور ایسی CSV لیں جو Excel، Google Sheets یا کسی بھی امپورٹ اسکرین میں کھلے۔ اوپر کی سطح کی فہرست میں ہر آئٹم ایک قطار بنتی ہے؛ ورنہ دستاویز میں ریکارڈز کی سب سے لمبی فہرست لی جاتی ہے، اس لیے {"results": [...], "count": 2} سے ہر نتیجے کی ایک قطار بنتی ہے؛ جس آبجیکٹ میں کوئی فہرست نہ ہو وہ ایک قطار بنتا ہے۔

اصول طے ہیں تاکہ نتیجہ پہلے سے معلوم ہو: اندر کے آبجیکٹ نقطے سے جڑے کالم بنتے ہیں (address.city)، سادہ قدروں کی فہرست ایک خانے میں سیمی کولن سے جڑ جاتی ہے، اور ریکارڈ کے اندر آبجیکٹس کی فہرست نمبر والے کالم بناتی ہے (items.0.name)۔ سرخی کی قطار ہر ملنے والی کی کا مجموعہ ہے، جس ترتیب سے پہلی بار ملیں، اس لیے جن ریکارڈز میں کوئی فیلڈ نہ ہو ان کا خانہ بس خالی رہتا ہے۔

CSV معیار RFC 4180 کے مطابق لکھی جاتی ہے — کوما، واوین یا لائن بریک والے فیلڈ ٹھیک طرح واوین میں آتے ہیں — UTF-8 میں، اختیاری BOM کے ساتھ تاکہ Excel ہر رسم الخط، اعراب اور خاص علامتیں درست دکھائے۔ جو خانہ =، +، - یا @ سے شروع ہو اس کے آگے اپوسٹروفی لگتی ہے، تاکہ اسپریڈشیٹ اسے فارمولا سمجھ کر چلانے کی بجائے متن کے طور پر دکھائے۔ ڈاؤن لوڈ سے پہلے آپ پہلی 200 سطریں دیکھتے ہیں، اور کچھ بھی آپ کے آلے سے باہر نہیں جاتا۔

JSON کو CSV میں تبدیل کریں کا طریقہ

  1. JSON فائل ڈالیں، یا JSON خانے میں پیسٹ کریں۔
  2. آؤٹ پٹ کے لیے کالم کا جداکار چنیں (طے شدہ کوما) اور Excel کا BOM لگانا ہے یا نہیں۔
  3. «CSV میں تبدیل کریں» دبائیں اور پہلی سطروں کا پیش نظارہ جانچیں۔
  4. .csv ڈاؤن لوڈ کریں۔

معاون فارمیٹس اور حدود

ان پٹ
JSON (.json) — فائل یا پیسٹ کیا متن، UTF-8
آؤٹ پٹ
CSV، RFC 4180، UTF-8، CRLF لائن اینڈ، اختیاری BOM
اندرونی ساخت
آبجیکٹ ← نقطے والے کالم؛ قدروں کی فہرست ← ; سے جڑی
جداکار
کوما، سیمی کولن، ٹیب یا عمودی لکیر
کہاں چلتا ہے
براؤزر میں – اپ لوڈ کے بغیر

ان کے لیے نہیں: بغیر کسی فہرست کے بہت گہرا اکیلا آبجیکٹ — تبدیل تو ہوتا ہے، مگر جدول کی بجائے ایک بہت چوڑی قطار بنتی ہے۔

کون سی فہرست قطاریں بنتی ہے

اوپر کی سطح پر فہرست ہو تو وہی قطاریں ہیں۔ ورنہ ٹول دستاویز کے اندر، آٹھ سطحوں کی گہرائی تک، آبجیکٹس کی سب سے لمبی فہرست تلاش کرتا ہے۔ اس لیے {"response": {"data": {"items": [...]}}} اور {"results": [...], "count": 2, "next": null} دونوں سے ہر آئٹم کی ایک قطار بنتی ہے، اور نتیجے کے نیچے کی سطر استعمال ہونے والی فہرست کا نام بتاتی ہے، جیسے results۔ اس فہرست کے ساتھ رکھی قدریں، جیسے count اور next، کسی ریکارڈ کا حصہ نہیں، اس لیے چھوڑ دی جاتی ہیں۔

دو برابر لمبی فہرستوں میں سے وہ جیتتی ہے جو اوپر کے زیادہ قریب ہو۔ کوئی چھوٹی فہرست چاہیے تو اسے اس کے [ سے ] تک کاپی کریں اور صرف وہی پیسٹ کریں۔ جس دستاویز میں آبجیکٹس کی کوئی فہرست نہ ہو وہ ایک قطار بنتی ہے، اور صرف ایک کی والے لفافے چھوڑ دیے جاتے ہیں، اس لیے {"order": {"id": 7, "total": 12}} سے id اور total کالم بنتے ہیں۔

قدریں خانوں میں کیسے لکھی جاتی ہیں

متن جوں کا توں کاپی ہوتا ہے، تاریخیں بھی، جو اسی شکل میں رہتی ہیں جس میں JSON میں ہوں، جیسے 2024-01-05T10:00:00Z۔ true اور false الفاظ کی صورت لکھے جاتے ہیں۔ null، خالی فہرست اور خالی آبجیکٹ تینوں خالی خانہ بنتے ہیں، اس لیے CSV میں وہ غائب فیلڈ جیسے ہی دکھتے ہیں۔

نمبر بالکل ویسا لکھا جاتا ہے جیسا JSON میں ہے: 1.0، 1.0 ہی رہتا ہے، 1e21، 1e21 رہتا ہے، اور 12345678901234567890 جیسا ID واوین کے بغیر بھی اپنا ہر ہندسہ رکھتا ہے۔ عام JSON ریڈر اس ID کو 12345678901234567000 بنا دیتا ہے۔

فہرستوں کے اندر فہرستیں، اور وہ کیز جن میں پہلے سے نقطہ ہو

فہرستوں کی فہرست ایک سطح تک کھولی جاتی ہے: "m": [[1, 2], [3]] سے m.0 کالم بنتا ہے جس میں 1;2 ہے اور m.1 کالم جس میں 3۔ جو فہرست آبجیکٹس اور سادہ قدریں ملا کر رکھے اس کے ہر آئٹم کو نمبر ملتا ہے، اس لیے "x": [{"z": 1}, 2] سے x.0.z اور x.1 بنتے ہیں۔

کالموں کے نام کیز کو نقطوں سے جوڑ کر بنتے ہیں، اس لیے جس کی میں پہلے سے نقطہ ہو وہ کسی اندرونی کی سے ٹکرا سکتی ہے: {"a.b": 1, "a": {"b": 2}} دو بار a.b بناتا۔ دوسرے کے ساتھ لاحقہ لگ جاتا ہے، اس لیے کالم a.b اور a.b_2 بنتے ہیں اور دونوں قدریں رہتی ہیں۔

جداکار کا انتخاب، اور = سے شروع ہونے والے خانے

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

جو خانہ =، +، - یا @ سے شروع ہو وہ اسپریڈشیٹ کے لیے فارمولا ہے، جسے وہ کھولتے ہی چلا دیتی۔ ایسے خانے کے آگے اپوسٹروفی لگا دی جاتی ہے، وہی نشان جسے اسپریڈشیٹ خود «یہ متن ہے» کے معنی میں لیتی ہیں، اس لیے =1+1 کی جگہ '=1+1 لکھا جاتا ہے۔ -5 یا +3.5 جیسے سادہ نمبر ویسے ہی رہتے ہیں۔

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

کیا میری فائل سرور پر اپ لوڈ ہوتی ہے؟
نہیں۔ تبدیلی پوری کی پوری آپ کے براؤزر میں، آپ کے اپنے آلے کی طاقت سے ہوتی ہے، اور فائل آپ کے کمپیوٹر یا موبائل سے باہر نہیں جاتی۔ کوئی ٹول ایک بار استعمال ہو جائے تو پھر انٹرنیٹ کے بغیر بھی چلتا ہے (ویڈیو، متن کی پہچان اور بیک گراؤنڈ ہٹانے والے ٹول پہلی بار اپنا انجن اسی سائٹ سے لیتے ہیں)۔
اندر کے آبجیکٹس اور فہرستوں کا کیا ہوتا ہے؟
اندر کا آبجیکٹ نقطے والے کالموں میں پھیل جاتا ہے: {"address":{"city":"Lahore"}} سے address.city نام کا کالم بنتا ہے۔ سادہ قدروں کی فہرست ("tags": ["a","b"]) ایک خانے میں a;b لکھی جاتی ہے۔ ریکارڈ کے اندر آبجیکٹس کی فہرست کو items.0.name، items.1.name جیسے نمبر والے کالم ملتے ہیں۔
میرا JSON فہرست نہیں، آبجیکٹ ہے — مجھے کیا ملے گا؟
اس کے اندر کہیں بھی ریکارڈز کی سب سے لمبی فہرست قطاریں بنتی ہے — {"results": [...], "count": 2, "next": null} سے ہر نتیجے کی ایک قطار — اور نتیجے کی سطر بتاتی ہے کہ کون سی فہرست استعمال ہوئی۔ اس فہرست کے ساتھ رکھی قدریں کسی ریکارڈ کا حصہ نہیں، اس لیے چھوڑ دی جاتی ہیں۔ جس آبجیکٹ میں کوئی فہرست نہ ہو وہ ایک قطار کے طور پر لکھا جاتا ہے، ہر کی کا ایک کالم۔
Excel عجیب حروف کیوں دکھاتا ہے، اور اسے کیسے ٹھیک کروں؟
فائل کے شروع میں BOM نہ ہو تو Excel انکوڈنگ کا اندازہ لگاتا ہے۔ «Excel کے لیے BOM شامل کریں» کا سوئچ طے شدہ طور پر چالو ہے اور وہ تین بائٹ کا نشان لگا دیتا ہے؛ جو ٹولز سادہ UTF-8 پر اصرار کریں ان کے لیے اسے بند کر دیں۔

متعلقہ ٹولز

اسپریڈشیٹ اور ڈیٹا میں مزید

یہ صفحہ دوسری زبانوں میں: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · Bahasa Indonesia · বাংলা