JSON डिफ़: JSON ऑब्जेक्ट की तुलना करें

दो JSON डॉक्यूमेंट पेस्ट करें और देखें कि ठीक-ठीक क्या बदला। हर अंतर $.users[2].email जैसे पाथ के साथ दिखता है, और फ़ॉर्मैटिंग या की का क्रम कभी गलत अलार्म नहीं देता।

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

की का क्रम हमेशा अनदेखा किया जाता है।

JSON डिफ़ का उपयोग कैसे करें

  1. मूल JSON बाईं ओर और बदला हुआ JSON दाईं ओर पेस्ट करें, या दो फ़ाइलें खोलें।
  2. सिंटैक्स एरर हर बॉक्स के नीचे लाइन और कॉलम के साथ दिखते हैं, ताकि आप उन्हें जल्दी ठीक कर सकें।
  3. बदले हुए पाथ टेबल पढ़ें: हर पंक्ति बताती है कि वैल्यू जोड़ी गई, हटाई गई या बदली गई, पुरानी और नई वैल्यू के साथ।
  4. जब लिस्ट सेट जैसी हों, जैसे टैग या परमिशन, तो array का क्रम अनदेखा करें पर टिक करें।
  5. बदलावों को संदर्भ में देखने के लिए साथ-साथ व्यू तक स्क्रॉल करें, या बदलावों की लिस्ट JSON के रूप में कॉपी करें।

स्ट्रक्चरल JSON diff टेक्स्ट diff से बेहतर क्यों है

साधारण टेक्स्ट diff अक्षरों और लाइनों की तुलना करता है, इसलिए एक ही डेटा वाली दो JSON फ़ाइलें पूरी तरह अलग दिख सकती हैं अगर एक मिनिफ़ाइड हो, अलग तरह से इंडेंट हो या उसकी की दूसरे क्रम में हों। यह टूल पहले दोनों डॉक्यूमेंट पार्स करता है और डेटा की तुलना करता है: ऑब्जेक्ट की तुलना क्रम की परवाह किए बिना की-दर-की होती है, और नंबर, स्ट्रिंग, बूलियन और null की तुलना वैल्यू से होती है। सिर्फ़ असली बदलाव रिपोर्ट होते हैं।

बदलाव कैसे रिपोर्ट होते हैं

हर अंतर को JSONPath-शैली का स्थान मिलता है, जैसे $.owner.email या $.items[3].price, और तीन में से एक प्रकार:

  • जोड़ा गया: की या array एलिमेंट सिर्फ़ बदले हुए JSON में मौजूद है।
  • हटाया गया: यह सिर्फ़ मूल JSON में मौजूद है।
  • बदला गया: यह दोनों में है लेकिन वैल्यू अलग है, टाइप बदलाव सहित, जैसे स्ट्रिंग का नंबर बन जाना।

Array को longest-common-subsequence एल्गोरिदम से संरेखित किया जाता है, इसलिए लिस्ट की शुरुआत में एक एलिमेंट जोड़ने को एक ही जोड़ के रूप में रिपोर्ट किया जाता है, न कि उसके बाद के हर एलिमेंट को बदला हुआ बताया जाता है।

Array का क्रम अनदेखा करना

कई API ऐसी लिस्ट लौटाते हैं जिनके क्रम का कोई मतलब नहीं होता, जैसे रोल, टैग या ID। array का क्रम अनदेखा करें चालू होने पर array की तुलना संग्रह के रूप में होती है: कोई एलिमेंट तभी जोड़ा या हटाया गया माना जाता है जब दूसरी तरफ़ उसका कोई बराबर साथी न हो। साथ-साथ व्यू तब array एलिमेंट को सॉर्ट करता है ताकि बराबर लिस्ट एक सीध में आएँ।

आम उपयोग

staging और production के API रिस्पॉन्स की तुलना करें, देखें कि किसी माइग्रेशन ने कॉन्फ़िग फ़ाइल में क्या बदला, दो package.json या tsconfig फ़ाइलों के अंतर की समीक्षा करें, और snapshot टेस्ट डिबग करें।

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

क्या JSON की तुलना में की का क्रम मायने रखता है?
नहीं। JSON ऑब्जेक्ट क्रमहीन होते हैं, इसलिए {"a":1,"b":2} और {"b":2,"a":1} बराबर बताए जाते हैं। डिफ़ॉल्ट रूप से array का क्रम मायने रखता है क्योंकि array क्रमबद्ध होते हैं, लेकिन आप इसे array का क्रम अनदेखा करें से बंद कर सकते हैं।
क्या मेरा JSON किसी सर्वर पर अपलोड होता है?
नहीं। दोनों डॉक्यूमेंट आपके ब्राउज़र में पार्स और तुलना किए जाते हैं। नेटवर्क पर कुछ नहीं भेजा जाता, इसलिए टोकन या ग्राहक डेटा वाले API रिस्पॉन्स के लिए यह टूल सुरक्षित है।
$.users[2].email जैसे पाथ का क्या मतलब है?
$ डॉक्यूमेंट का रूट है, .users एक की है, और [2] array का तीसरा एलिमेंट है (इंडेक्स 0 से शुरू होते हैं)। स्पेस या विशेष अक्षरों वाली की ब्रैकेट में लिखी जाती हैं, जैसे $["first name"]।
क्या 1 और 1.0 बराबर हैं?
हाँ। दोनों पार्स होकर एक ही नंबर बनते हैं, इसलिए इन्हें अंतर नहीं माना जाता। नंबर और स्ट्रिंग, जैसे 1 और "1", अलग हैं और बदले हुए के रूप में रिपोर्ट होते हैं।
क्या मैं कमेंट या आख़िरी कॉमा वाले JSON की तुलना कर सकता हूँ?
स्टैंडर्ड JSON इनकी अनुमति नहीं देता, इसलिए ऐसा इनपुट ठीक लाइन और कॉलम के साथ चिह्नित होता है। कमेंट या कॉमा हटाएँ, या पहले डॉक्यूमेंट को JSON फ़ॉर्मैटर में साफ़ करें।

संबंधित टूल्स