tigtools

JSON डिफ़

दो JSON दस्तावेज़ चिपकाएँ ताकि ठीक-ठीक पता चले कि कौन से मान अलग हैं, जिन्हें पथ जैसे $.order.items[2].price द्वारा सूचीबद्ध किया गया है।

आपके ब्राउज़र में चलता है साइन अप की ज़रूरत नहीं

ऐरे की तुलना करें
दिखाएँ

इस्तेमाल करने का तरीका

  1. बाईं ओर मूल JSON और दाईं ओर परिवर्तित JSON चिपकाएँ, या उदाहरण आज़माएँ।
  2. चुनें कि ऐरे की तुलना कैसे की जाए: स्थिति के अनुसार, या आइटमों का मिलान करके ताकि एक सम्मिलित आइटम केवल एक बार रिपोर्ट हो।
  3. अंतरों को सूची के रूप में या साथ-साथ पढ़ें। प्रत्येक का रूट ($) से एक पथ होता है।
  4. रिपोर्ट को कॉपी करें ताकि इसे टिकट या कोड समीक्षा में चिपका सकें।

यह कैसे काम करता है

दोनों दस्तावेज़ों को टेक्स्ट के रूप में नहीं, बल्कि डेटा के रूप में पार्स करके तुलना की जाती है। ऑब्जेक्ट की तुलना कुंजी दर कुंजी की जाती है, इसलिए कुंजियों का क्रम और रिक्त स्थान या इंडेंटेशन मायने नहीं रखते। संख्याओं की तुलना मान के आधार पर की जाती है, इसलिए 1 और 1.0 बराबर हैं।

हर अंतर का पथ JSONPath एक्सप्रेशन जैसा लिखा होता है: $ रूट है, .name एक प्रॉपर्टी है, [2] एक ऐरे इंडेक्स है, और जो कुंजियाँ साधारण नाम नहीं हैं वे उद्धरण में होती हैं, जैसे $["first-name"]। चार प्रकार के अंतर बताए जाते हैं: जोड़ा गया (केवल दाईं ओर), हटाया गया (केवल बाईं ओर), बदला गया (समान प्रकार, अलग मान) और प्रकार बदला गया (उदाहरण के लिए संख्या 44.9 स्ट्रिंग "44.90" बन गई, या कोई मान null बन गया)। जब पूरा ऑब्जेक्ट या ऐरे जोड़ा या हटाया जाता है, तो उसे हर फ़ील्ड के बजाय उसके अपने पथ पर एक बार बताया जाता है।

ऐरे की तुलना डिफ़ॉल्ट रूप से स्थिति से की जाती है: आइटम 0 से आइटम 0, आइटम 1 से आइटम 1। अगर शुरुआत में कोई आइटम डाला जाता है, तो बाद के सभी आइटम बदले हुए दिखते हैं। “Match moved items” पहले दोनों ऐरे को समान आइटमों के सबसे लंबे सामान्य उप-अनुक्रम का उपयोग करके संरेखित करता है, ताकि insertion या deletion केवल एक बार बताया जाए और बाकी आइटम आपस में जोड़े जाएँ। जोड़े गए आइटम दाईं ओर के अपने इंडेक्स का उपयोग करते हैं, हटाए गए आइटम बाईं ओर के अपने इंडेक्स का। बहुत बड़े ऐरे (लगभग 2 मिलियन आइटम जोड़ों से अधिक) के लिए मिलान छोड़ दिया जाता है, फिर उनकी तुलना स्थिति से की जाती है।

सूची में कुंजी पथ हर ऑब्जेक्ट के भीतर वर्णानुक्रम में क्रमबद्ध होते हैं। अधिकतम 2,000 अंतर दिखाए जाते हैं; कॉपी की गई रिपोर्ट में हमेशा सभी होते हैं।

उदाहरण

API बदलाव की जाँच

एक ही ऑर्डर के लिए कल और आज के रिस्पॉन्स की तुलना करें। अंतर में दिखता है कि $.status "pending" से "shipped" में बदला, $.total का प्रकार number से string में बदला, $.coupon हटाया गया और $.customer.phone जोड़ा गया।

कॉन्फ़िगरेशन ड्रिफ्ट

स्टेजिंग और प्रोडक्शन से JSON कॉन्फ़िग चिपकाएँ। कुंजी क्रम अनदेखा होने के कारण, केवल वास्तविक अंतर जैसे $.cache.ttl 300 → 60 दिखाई देते हैं, भले ही फ़ाइलें अलग-अलग टूल द्वारा सहेजी गई हों।

सम्मिलित आइटम वाली सूचियाँ

एक उत्पाद सूची में एक नया पहला आइटम जुड़ गया। स्थिति के अनुसार, हर उत्पाद बदला हुआ दिखता है; “मूव किए गए आइटम मिलाएँ” के साथ, परिणाम एक एकल “जोड़ा गया $[0]” होता है।

अक्सर पूछे जाने वाले सवाल

यह टेक्स्ट डिफ़ से किस प्रकार भिन्न है?

टेक्स्ट डिफ़ पंक्तियों की तुलना करता है, इसलिए कुंजियों को पुनः क्रमित करना या पुनः स्वरूपण करना परिवर्तन के रूप में दिखाई देता है। यह टूल पार्स किए गए डेटा की तुलना करता है, इसलिए केवल मानों, प्रकारों और संरचना में अंतर रिपोर्ट किए जाते हैं।

एक सम्मिलन के बाद एक ऐरे कई परिवर्तन क्यों दिखाता है?

“स्थिति के अनुसार” मोड में, आइटमों की तुलना समान इंडेक्स पर की जाती है, और एक सम्मिलन हर बाद के आइटम को खिसका देता है। समान आइटमों को पहले संरेखित करने के लिए “मूव किए गए आइटम मिलाएँ” पर स्विच करें।

क्या "1" और 1 को समान माना जाता है?

नहीं। एक स्ट्रिंग है और दूसरा नंबर, इसलिए अंतर को प्रकार परिवर्तन के रूप में रिपोर्ट किया जाता है। समान प्रकार वाले मानों की सटीक तुलना की जाती है।

क्या मैं बहुत बड़ी फ़ाइलों की तुलना कर सकता हूँ?

कुछ मेगाबाइट की फ़ाइलें काम करती हैं, लेकिन सब कुछ आपके ब्राउज़र की मेमोरी में संसाधित होता है, इसलिए बहुत बड़े दस्तावेज़ फ़ोन पर धीमे हो सकते हैं।

गोपनीयता

दोनों दस्तावेज़ केवल आपके ब्राउज़र में पार्स और तुलना किए जाते हैं। कुछ भी अपलोड, संग्रहीत या एनालिटिक्स में शामिल नहीं किया जाता है।