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