JSON Patch جنریٹر

دو JSON دستاویزوں کا موازنہ کریں اور وہ RFC 6902 پیچ حاصل کریں جو پہلی کو دوسری میں بدل دیتا ہے۔ سب کچھ آپ کے براؤزر میں چلتا ہے۔

یہ ٹول کیا کرتا ہے


یہ دو JSON دستاویزوں کا موازنہ کر کے ان اعمال کی فہرست لکھتا ہے جو پہلی کو دوسری میں بدل دیتے ہیں، بالکل اسی ساخت میں جو RFC 6902 طے کرتا ہے۔ ایک فیلڈ بدلنے کی خبر دینے کے لیے پوری دستاویز بھیجنے کے بجائے، آپ تبدیلی ہی بھیجتے ہیں۔

کب کام آتا ہے


PATCH درخواست کا مواد بنانے کے لیے، کسی کنفیگریشن فائل کے دو نسخوں کے درمیان کیا بدلا یہ درج کرنے کے لیے، یا ایسا آڈٹ ریکارڈ رکھنے کے لیے جو ہر مکمل نقل رکھنے سے کہیں چھوٹا ہو۔ یہ جاننے کا تیز طریقہ بھی ہے کہ ایک جیسی دکھنے والی دو دستاویزوں میں اصل فرق کہاں ہے۔

یہ کون سے اعمال بناتا ہے


عملاس کا مطلب
addجہاں کوئی قدر نہ تھی وہاں قدر شامل کرتا ہے، یا کسی صف میں داخل کرتا ہے۔
removeاس جگہ کی قدر مٹا دیتا ہے۔
replaceپہلے سے موجود جگہ کی قدر پر لکھ دیتا ہے۔
moveکسی قدر کو ایک جگہ سے دوسری جگہ لے جاتا ہے۔
copyکسی قدر کی دوسری جگہ نقل بناتا ہے۔
testکسی قدر کی جانچ کرتا ہے اور مطابقت نہ ہو تو پورا پیچ روک دیتا ہے۔

یہ ٹول صرف add، remove اور replace لکھتا ہے۔ یہ تینوں کسی بھی تبدیلی کو بیان کر سکتے ہیں، اور ایسا پیچ جو سطر بہ سطر پڑھا جا سکے، اس چھوٹے پیچ سے قیمتی ہے جسے سمجھنے میں سر کھپانا پڑے۔ باقی تینوں بھی RFC 6902 کا حصہ ہیں اور اصول ماننے والا ہر سرور انہیں قبول کرتا ہے۔

راستے کیسے کام کرتے ہیں


ہر راستہ ایک JSON Pointer (RFC 6901) ہے: دستاویز کی جڑ سے شروع ہو کر سلیش سے بٹا ہوا راستہ، جہاں ”/address/zipCode“ کا مطلب address کے اندر کا zipCode فیلڈ ہے۔ صف کی جگہیں اعداد ہوتی ہیں، اس لیے ”/skills/0“ پہلا آئٹم ہے، اور ڈیش صف کا اختتام بتاتا ہے: ”/skills/-“ آخر میں جوڑتا ہے۔ چونکہ سلیش ہی جدا کرنے والا نشان ہے، جس کلید میں سلیش ہو اسے ~1 لکھا جاتا ہے، اور اصل ٹلڈ کو ~0۔

نتیجے کے بارے میں


موازنہ لفظی ہوتا ہے: قدریں جگہ بہ جگہ ملائی جاتی ہیں، اس لیے کسی صف کے شروع میں ایک آئٹم ڈالنے پر ایک ہی اندراج کے بجائے اس کے بعد کے ہر آئٹم پر replace بنتا ہے۔ مستحکم شناخت کاروں والی اشیا کی صف کے لیے، شناخت کاروں سے بنا پیچ ہمیشہ جگہوں سے بنے پیچ سے چھوٹا ہوگا۔

JSON Patch کیسے بنائیں


دو JSON دستاویزیں چسپاں کریں اور پیچ بنائیں۔

  1. بائیں طرف اصل JSON چسپاں کریں۔
  2. دائیں طرف بدلا ہوا JSON چسپاں کریں۔
  3. بنائیں دبائیں، پھر پیچ کاپی کریں۔

اکثر پوچھے جانے والے سوالات


کیا یہ ٹول میرا ڈیٹا کہیں بھیجتا ہے؟
نہیں۔ دونوں دستاویزیں آپ کے براؤزر ہی میں رہتی ہیں اور پیچ آپ کی اپنی مشین پر بنتا ہے۔

کیا نتیجہ RFC 6902 کے مطابق ہے؟
جی ہاں۔ ہر عمل ایک آبجیکٹ ہے جس میں op، path اور — add اور replace کے لیے — value ہوتا ہے، اور راستے وہی JSON Pointer ہیں جو RFC 6901 بیان کرتا ہے۔

کیا اس میں move اور copy اعمال آتے ہیں؟
نہیں۔ یہ add، remove اور replace لکھتا ہے، جو کسی بھی تبدیلی کے لیے کافی ہیں اور پڑھنے میں کہیں آسان۔ move دراصل remove کے بعد آنے والا add ہی ہے۔

پیچ کیسے لاگو کروں؟
اسے ایسے API کو بھیجیں جو application/json-patch+json قبول کرتا ہو، یا کوئی لائبریری استعمال کریں: پائتھن میں jsonpatch، جاوا اسکرپٹ میں json-patch، .NET میں JsonPatchDocument، جاوا میں json-patch، وغیرہ۔

JSON Merge Patch سے کیا فرق ہے؟
JSON Merge Patch (RFC 7386) دستاویز ہی جیسا دکھتا ہے، جس میں null کا مطلب ”مٹا دو“ ہوتا ہے۔ اس سے وہ پڑھنے میں آسان رہتا ہے، مگر اصل null محفوظ نہیں کر سکتا اور نہ صف کے کسی ایک آئٹم کو چھو سکتا ہے۔ JSON Patch زیادہ لفظوں والا ہے، مگر کچھ بھی بیان کر سکتا ہے۔

Wikipedia — JSON Patch
Wikipedia — JSON
Wikipedia — Patch (computing)
Wikipedia — Diff
Wikipedia — REST