JSON Diff: JSON آبجیکٹس کا موازنہ
دو JSON دستاویزات پیسٹ کریں اور بالکل دیکھیں کہ کیا بدلا ہے۔ ہر فرق پاتھ کے ساتھ درج ہوتا ہے، جیسے $.users[2].email، اور فارمیٹنگ یا کیز کی ترتیب کبھی غلط الارم نہیں دیتی۔
آپ کے براؤزر میں چلتا ہےسائن اپ کی ضرورت نہیںکچھ اپ لوڈ نہیں ہوتا
تبدیل شدہ پاتھس
| تبدیلی | پاتھ | پرانی ویلیو | نئی ویلیو |
|---|
JSON Diff استعمال کرنے کا طریقہ
- اصل JSON دائیں طرف اور تبدیل شدہ JSON بائیں طرف پیسٹ کریں، یا دو فائلیں کھولیں۔
- سنٹیکس ایررز ہر خانے کے نیچے لائن اور کالم کے ساتھ دکھائے جاتے ہیں تاکہ آپ انہیں جلدی ٹھیک کر سکیں۔
- تبدیل شدہ پاتھس ٹیبل پڑھیں: ہر قطار بتاتی ہے کہ ویلیو شامل، ہٹائی یا تبدیل ہوئی، پرانی اور نئی ویلیو کے ساتھ۔
- جب فہرستیں دراصل سیٹس ہوں، جیسے ٹیگز یا اجازتیں، تو ارے کی ترتیب نظر انداز کریں پر نشان لگائیں۔
- تبدیلیاں سیاق و سباق میں دیکھنے کے لیے ساتھ ساتھ منظر تک سکرول کریں، یا تبدیلیوں کی فہرست بطور JSON کاپی کریں۔
ساختی JSON diff ٹیکسٹ diff سے بہتر کیوں ہے
سادہ ٹیکسٹ diff کریکٹرز اور لائنوں کا موازنہ کرتا ہے، اس لیے ایک جیسا ڈیٹا رکھنے والی دو JSON فائلیں بالکل مختلف لگ سکتی ہیں اگر ایک منیفائیڈ ہو، مختلف انڈینٹ ہو یا اس کی کیز دوسری ترتیب میں ہوں۔ یہ ٹول پہلے دونوں دستاویزات پارس کرتا ہے اور ڈیٹا کا موازنہ کرتا ہے: آبجیکٹس کا موازنہ ترتیب سے قطع نظر کی بہ کی ہوتا ہے، اور نمبرز، سٹرنگز، بولینز اور null کا ویلیو کے لحاظ سے۔ صرف حقیقی تبدیلیاں رپورٹ ہوتی ہیں۔
تبدیلیاں کیسے رپورٹ ہوتی ہیں
ہر فرق کو JSONPath طرز کا مقام ملتا ہے، جیسے $.owner.email یا $.items[3].price، اور تین میں سے ایک قسم:
- شامل کیا گیا: کی یا ارے element صرف تبدیل شدہ JSON میں موجود ہے۔
- ہٹایا گیا: یہ صرف اصل JSON میں موجود ہے۔
- تبدیل شدہ: دونوں میں موجود ہے لیکن ویلیو مختلف ہے، بشمول ٹائپ کی تبدیلی جیسے سٹرنگ کا نمبر بن جانا۔
ارے longest-common-subsequence الگورتھم سے ترتیب دیے جاتے ہیں، اس لیے فہرست کے شروع میں ایک element داخل کرنا ہر اگلے element کو تبدیل شدہ قرار دینے کے بجائے ایک اضافے کے طور پر رپورٹ ہوتا ہے۔
ارے کی ترتیب نظر انداز کرنا
بہت سی APIs ایسی فہرستیں لوٹاتی ہیں جن کی ترتیب کا کوئی مطلب نہیں، جیسے رولز، ٹیگز یا IDs۔ ارے کی ترتیب نظر انداز کریں آن ہونے پر ارے کا موازنہ مجموعوں کے طور پر ہوتا ہے: ایک element تبھی شامل یا ہٹایا ہوا سمجھا جاتا ہے جب دوسری طرف اس کا کوئی برابر مماثل نہ ہو۔ پھر ساتھ ساتھ منظر ارے elements کو ترتیب دیتا ہے تاکہ برابر فہرستیں ایک قطار میں آئیں۔
عام استعمالات
staging اور production کے درمیان API ریسپانسز کا موازنہ کریں، دیکھیں کہ کسی migration نے کنفیگ فائل میں کیا بدلا، دو package.json یا tsconfig فائلوں کے فرق کا جائزہ لیں، اور snapshot tests ڈیبگ کریں۔
اکثر پوچھے جانے والے سوالات
کیا JSON کا موازنہ کرتے وقت کیز کی ترتیب اہم ہے؟
{"a":1,"b":2} اور {"b":2,"a":1} برابر رپورٹ ہوتے ہیں۔ ارے کی ترتیب ڈیفالٹ طور پر اہم ہے کیونکہ ارے ترتیب شدہ ہوتے ہیں، لیکن آپ اسے ارے کی ترتیب نظر انداز کریں سے بند کر سکتے ہیں۔کیا میرا JSON سرور پر اپ لوڈ ہوتا ہے؟
$.users[2].email جیسے پاتھس کا کیا مطلب ہے؟
$ دستاویز کی جڑ ہے، .users ایک کی ہے، اور [2] ارے کا تیسرا element ہے (انڈیکس 0 سے شروع ہوتے ہیں)۔ اسپیس یا خاص کریکٹرز والی کیز بریکٹس میں لکھی جاتی ہیں، جیسے $["first name"]۔کیا 1 اور 1.0 برابر ہیں؟
1 اور "1"، مختلف ہیں اور تبدیل شدہ رپورٹ ہوتے ہیں۔