CSV سے JSON کنورٹر

بائیں طرف CSV (یا TSV) پیسٹ کریں، دائیں طرف آبجیکٹس کی JSON ایرے حاصل کریں۔ ہیڈر خودکار طور پر شناخت ہوتے ہیں۔ کوئی اپ لوڈ نہیں۔

  1. اپنا CSV بائیں ٹیکسٹ ایریا میں پیسٹ کریں۔
  2. "JSON میں تبدیل کریں" پر کلک کریں۔ پہلی قطار کو ہیڈر سمجھا جاتا ہے۔
  3. JSON ایرے کاپی کریں یا data.json کے طور پر ڈاؤن لوڈ کریں۔
  4. TSV (ٹیب-سیپریٹڈ) اور دیگر ڈیلیمٹر PapaParse خود بخود شناخت کرتا ہے۔
یہ کیا کرتا ہے؟

CSV (RFC 4180-جیسا) کو JSON ایرے میں پارس کرتا ہے جہاں ہر آبجیکٹ کی کلید ہیڈر کالم سے ملتی ہے۔ کوٹڈ فیلڈز، اندرونی کاما، ایسکیپڈ ڈبل کوٹس، اور CRLF / LF لائن اینڈنگز سب سنبھالے جاتے ہیں۔ نمبرز، بولین اور null-جیسی قدریں ("true"، "false"، خالی) خودکار طور پر ٹائپ ہوتی ہیں۔ ڈیلیمٹر خود کشف ہوتا ہے — TSV، سیمی کولن یا پائپ سے علیحدہ ڈیٹا بھی کام کرتا ہے۔

مثال

CSV ان پٹ:

name,age,role
Ada,36,engineer
Grace,40,scientist

JSON آؤٹ پٹ:

[
  {"name": "Ada", "age": 36, "role": "engineer"},
  {"name": "Grace", "age": 40, "role": "scientist"}
]

عام CSV مسائل اور ان سے نمٹنا

CSV سادہ لگتا ہے مگر اس میں توقع سے زیادہ کنارے کے کیسز ہیں۔ یہ پیٹرنز غیر متوقع آؤٹ پٹ پیدا کرتے ہیں۔

  • بغیر کوٹس کے اندرونی کاما۔ `Smith, John` جیسی فیلڈ (کوٹس کے بغیر) دو کالموں میں بٹ جاتی ہے۔ ایسی فیلڈز کو ڈبل کوٹس میں لپیٹیں: `"Smith, John"`۔
  • فیلڈ کے اندر ڈبل کوٹس۔ کوٹڈ فیلڈ کے اندر، حقیقی `"` کو دوگنا کر کے ایسکیپ کیا جاتا ہے: `"He said ""hi"""` کا نتیجہ `He said "hi"` ہے۔ بیک سلیش ایسکیپنگ (`\"`) معیار نہیں اور سپورٹ نہیں۔
  • کالم کی غیر مستقل تعداد۔ ہیڈر سے کم کالم والی قطاروں کو غائب کلیدوں کے لیے null ملتا ہے؛ زیادہ کالم والی قطاریں پارس وارننگ کے طور پر رپورٹ ہوتی ہیں۔ تبدیلی مکمل ہوتی ہے مگر آؤٹ پٹ چیک کریں۔
  • ابتدائی صفر کھونے والے عددی IDs۔ `007` نمبر 7 کے طور پر پارس ہوتا ہے، اسٹرنگ "007" نہیں۔ ابتدائی صفر اہم ہوں (پن کوڈ، فون نمبر) تو فیلڈ کو کوٹ کر کے پری-پراسیس کریں — کوٹڈ ویلیوز ڈاؤن سٹریم میں ڈائنامک ٹائپنگ بند کرنے سے اسٹرنگ رہ سکتی ہیں۔
  • فائل کے آغاز میں BOM۔ Excel سے محفوظ کردہ CSV اکثر شروع میں UTF-8 بائٹ آرڈر مارک (`\uFEFF`) شامل کرتی ہیں۔ پارسر اسے ہٹا دیتا ہے، مگر ہیکس ایڈیٹر سے خام بائٹس پیسٹ کرنے پر BOM پہلے ہیڈر پر اجنبی کریکٹر کے طور پر ظاہر ہو سکتا ہے۔
  • مخلوط لائن اینڈنگز۔ CRLF (Windows)، LF (Unix)، اور CR (پرانا Mac) سب پہچانے جاتے ہیں۔ اگر آؤٹ پٹ ایک بہت بڑی قطار جیسا لگے تو فائل میں بالکل لائن بریک نہیں ہو سکتے — `\n` کے بغیر جوڑ کر بنائے CSV میں عام۔
اکثر پوچھے جانے والے سوالات

کیا یہ ٹیب-سیپریٹڈ ویلیوز (TSV) سپورٹ کرتا ہے؟

جی ہاں۔ PapaParse ان پٹ کے پہلے 1 KB سے ڈیلیمٹر خود کشف کرتا ہے۔ ٹیب، سیمی کولن، پائپ اور کاما بغیر کنفگریشن کام کرتے ہیں۔ اگر کشف غلط ہو (حقیقی ڈیٹا پر کم) تو فیلڈز کو واضح طور پر علیحدہ کریں یا پری-پراسیس کریں۔

اگر میرے CSV میں ہیڈر قطار نہ ہو تو؟

موجودہ کنفگریشن پہلی قطار کو ہیڈر مانتی ہے۔ ہیڈرلیس CSV کے لیے پیسٹ سے پہلے `a,b,c` جیسی مصنوعی ہیڈر قطار شامل کریں — یا اگر ایرے-آف-ایرے آؤٹ پٹ چاہیے تو کمانڈ لائن پر PapaParse `header: false` کے ساتھ چلائیں۔

تاریخیں کیسے سنبھالی جاتی ہیں؟

وہ اسٹرنگ کی شکل میں رہتی ہیں۔ پارسر صرف نمبر اور بولین کو خودکار طور پر ٹائپ کرتا ہے — تاریخ پارسنگ جان بوجھ کر نہیں کی جاتی کیونکہ تاریخ فارمیٹ کی ابہام (`01/02/03` امریکہ میں 2 جنوری اور برطانیہ میں 1 فروری) خطرناک ہے۔ ڈاؤن سٹریم میں جہاں ماخذ کی روایت معلوم ہو، وہاں پارس کریں۔

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

تقریباً 50 MB تک براؤزر ٹھیک کام کرتا ہے۔ رکاوٹ ٹیکسٹ ایریا ہے، پارسر نہیں — بڑی فائلوں کے لیے کمانڈ لائن پر PapaParse چلائیں۔ لائبریری وہی ہے۔

کیا میری CSV کہیں اپ لوڈ ہوتی ہے؟

نہیں۔ سب کچھ آپ کے براؤزر میں چلتا ہے — ڈیٹا اس صفحے کے JavaScript سے پارس ہوتا ہے اور کبھی کسی سرور پر نہیں جاتا۔ ڈویلپر ٹولز میں تصدیق کریں: تبدیل پر کلک کرتے وقت صفر نیٹ ورک درخواستیں۔

مختلف شکل کا JSON (نیسٹڈ، گروپڈ) کیسے حاصل کروں؟

یہ ٹول فلیٹ آبجیکٹس کا فلیٹ ایرے بناتا ہے — یہی CSV ظاہر کرتا ہے۔ نیسٹڈ ساخت کے لیے آؤٹ پٹ کو اسکرپٹ سے پوسٹ-پراسیس کریں (کالم کے ذریعے گروپ، پری فکس کے ساتھ فیلڈ نام، وغیرہ)۔ CSV میں سلسلہ مراتب انکوڈ کرنے کی کوشش عام طور پر زیادہ مسائل پیدا کرتی ہے۔