اس ٹول کے بارے میں
JSON فارمیٹنگ (اکثر خوبصورت پرنٹنگ یا بیوٹیفیکیشن کہا جاتا ہے) کمپیکٹ JSON لیتا ہے اور وہائٹ اسپیس شامل کرتا ہے — لائن بریک، انڈینٹیشن، مستقل وقفہ — تاکہ ڈھانچے کو انسانی قارئین کے لیے مرئی بنایا جا سکے۔ کومپیکٹ JSON ٹرانسمیشن کے لیے صحیح فارمیٹ ہے: یہ تار اور اسٹوریج پر بائٹس کو کم کرتا ہے۔ فارمیٹ شدہ JSON معائنہ کے لیے صحیح فارمیٹ ہے: حاشیہ دار درجہ بندی ایک نظر میں نیسٹڈ ڈھانچے کو ظاہر کرتی ہے، فرق کو معنی خیز بناتی ہے، اور ڈویلپرز کو دستاویز کو ذہنی طور پر پارس کیے بغیر مخصوص فیلڈز کا پتہ لگانے دیتی ہے۔
یہ فارمیٹر ان پٹ کو JSON کے طور پر پارس کرتا ہے تاکہ یہ تصدیق ہو سکے کہ یہ درست ہے، پھر اسے مستقل انڈینٹیشن کے ساتھ دوبارہ خارج کرتا ہے۔ غلط ان پٹ نحو کے مسئلے کی طرف اشارہ کرتے ہوئے ایک خرابی پیدا کرتا ہے۔ درست ان پٹ کو دوبارہ فارمیٹ کیا جاتا ہے اس سے قطع نظر کہ ماخذ کتنا کمپیکٹ یا گندا تھا۔ سب سے عام JavaScript کنونشن سے مماثل، انڈینٹیشن دو اسپیس پر ڈیفالٹ ہوتا ہے۔
فارمیٹر minification (الٹا آپریشن) بھی پیش کرتا ہے، جو سب سے چھوٹی درست JSON پیدا کرنے کے لیے تمام غیر ضروری وائٹ اسپیس کو ہٹا دیتا ہے۔ کم پیداوار کی ترسیل کے لیے مفید ہے؛ فارمیٹ شدہ آؤٹ پٹ ترقی اور ڈیبگنگ کے لیے مفید ہے۔
JSON کیوں فارمیٹ کریں۔
انڈینٹیشن کے بغیر گہرے نیسٹڈ JSON کو پڑھنا بنیادی طور پر ناممکن ہے — ڈھانچہ تکنیکی طور پر موجود ہے لیکن پوشیدہ ہے۔ یہاں تک کہ معتدل پیچیدہ JSON فارمیٹنگ سے بہت زیادہ فائدہ اٹھاتا ہے۔ کوڈ کا جائزہ لینے والے، API ڈیبگرز، اور کوئی بھی جو ڈیٹا پے لوڈ کو سمجھنے کی کوشش کر رہا ہے اسے یہ دیکھنے کے لیے JSON فارمیٹ کرنے کی ضرورت ہے کہ اصل میں وہاں کیا ہے۔
فارمیٹنگ بھی غلطیاں پکڑتی ہے۔ اگر JSON فارمیٹنگ کے دوران تجزیہ کرنے میں ناکام ہو جاتا ہے، تو غلطی کا پیغام نحوی مسئلے کی صحیح پوزیشن کی نشاندہی کرتا ہے — اکثر ایک غائب کوما، ایک غیر نقل شدہ کلید، یا ایک سٹری ٹریلنگ کوما جسے پروڈکشن سسٹم نے جھنڈا نہیں لگایا۔ فارمیٹر سب سے آسان JSON تصدیق کنندہ دستیاب ہے۔
تکنیکی تفصیلات
فارمیٹر JSON.parse اور JSON.stringify کا استعمال کرتا ہے، ہر JavaScript کے رن ٹائم جہازوں پر ایک ہی جوڑا ہوتا ہے۔ تجزیہ RFC 8259 (موجودہ JSON spec) کی پیروی کرتا ہے، سخت JSON کو قبول کرتا ہے لیکن JavaScript آبجیکٹ لٹریلز، تبصرے، ٹریلنگ کوما، اور دیگر JSON5 ایکسٹینشنز کو مسترد کرتا ہے۔
JSON.stringify ایک انڈینٹ دلیل کو قبول کرتا ہے: ایک نمبر (اسپیسز) یا اسٹرنگ (اپنی مرضی کے مطابق انڈینٹ کریکٹر، جیسے ٹیب)۔ فارمیٹر دونوں اختیارات کو بے نقاب کرتا ہے۔ آؤٹ پٹ کو اشیاء کے لیے سورس آرڈر میں ترتیب دیا گیا ہے (چونکہ ES2015 نے تمام بڑے انجنوں میں پراپرٹی کے اندراج کے آرڈر کو محفوظ کیا ہے)۔
ایج کیسز: نمبر سے زیادہ بڑی تعداد۔ MAX_SAFE_INTEGER پارس ہونے پر درستگی کھو دیتے ہیں (ایک معلوم JSON حد؛ IDs کے لیے سٹرنگ ویلیوز استعمال کریں جو 2^53 سے زیادہ ہیں)۔ تاروں میں یونیکوڈ فرار لفظی طور پر محفوظ ہیں۔ ٹریلنگ وائٹ اسپیس ہر لائن سے چھین لی جاتی ہے۔
اکثر پوچھے جانے والے سوالات
- یہ ٹول کس قسم کی JSON خرابیوں کا پتہ لگاتا ہے؟
- یہ ٹول RFC 8259 JSON تفصیلات کے مطابق گمشدہ کوما، غیر مماثل بریکٹ/منحنی خطوط وحدانی، غلط سٹرنگ ایسکیپنگ، ٹریلنگ کوما، سنگل کوٹڈ سٹرنگز، اور دیگر نحو کی خلاف ورزیوں کا پتہ لگاتا ہے۔
- کیا یہ بہت بڑی JSON فائلوں کو سنبھال سکتا ہے؟
- جی ہاں فارمیٹر مقامی JavaScript پارسنگ کا استعمال کرتے ہوئے آپ کے براؤزر میں JSON پر کارروائی کرتا ہے، لہذا یہ کئی میگا بائٹس تک کی فائلوں کو مؤثر طریقے سے ہینڈل کرتا ہے۔ انتہائی بڑی فائلوں (50MB+) کے لیے، پروسیسنگ کا وقت آپ کے آلے پر منحصر ہے۔
- کیا یہ JSON کو تبصروں کے ساتھ سپورٹ کرتا ہے (JSONC)؟
- معیاری JSON تبصروں کی اجازت نہیں دیتا۔ اگر آپ کے ان پٹ میں تبصرے ہیں، تو تصدیق کنندہ انہیں غلطیوں کے طور پر نشان زد کرے گا۔ JSONC سپورٹ کے لیے، فارمیٹنگ سے پہلے تبصرے ہٹا دیں۔
- کیا فارمیٹنگ میرے ڈیٹا کی قدروں کو بدل دے گی؟
- نہیں۔ فارمیٹنگ صرف وائٹ اسپیس اور انڈینٹیشن کو ایڈجسٹ کرتی ہے — آپ کے ڈیٹا کی اقسام، اقدار اور ڈھانچہ بالکل وہی رہتا ہے۔
- کیا JSON5 کی خصوصیات تعاون یافتہ ہیں (تبصرے، ٹریلنگ کوما)؟
- نمبر۔ فارمیٹر RFC 8259 کی سختی سے پیروی کرتا ہے۔ JSON5 خصوصیات تجزیہ کی خرابیوں کا سبب بنتی ہیں۔ JSON5 کے ساتھ کام کرنے کے لیے، پہلے JSON5 پارسر کا استعمال کرتے ہوئے معیاری JSON میں تبدیل کریں۔
- کیا میرا JSON سرور پر اپ لوڈ ہے؟
- نہیں. پارسنگ اور فارمیٹنگ مکمل طور پر آپ کے براؤزر میں بلٹ ان JSON فنکشنز کا استعمال کرتے ہوئے ہوتی ہے۔
- کیا بڑی تعداد درستگی کھو دے گی؟
- JavaScript اعداد کو 64 بٹ فلوٹ کے طور پر ظاہر کرتا ہے، لہذا 2^53 (تقریباً 9 quadrillion) سے اوپر والے عدد درستگی کھو دیتے ہیں۔ IDs یا دیگر بڑی عددی اقدار کے لیے، انہیں JSON میں سٹرنگ کے طور پر اسٹور کریں۔
- کیا میں حروف تہجی کے مطابق چابیاں ترتیب دے سکتا ہوں؟
- JSON.stringify کلیدوں کو ترتیب نہیں دیتا ہے۔ سٹرنگفائنگ سے پہلے کلیدوں کو حروف تہجی میں ترتیب دینے کے لیے الگ الگ ترتیب والا مرحلہ (یا چھانٹی سپورٹ والا فارمیٹر) استعمال کریں۔