की तुलना करते समय विशिष्ट नोड्स/विशेषताओं को अनदेखा करें, मैं दो JSON तारों की तुलना करना चाहता हूं जो एक विशाल पदानुक्रम है और यह जानना चाहते हैं कि वे मूल्यों में कहां भिन्न हैं। लेकिन रनटाइम पर कुछ मान उत्पन्न होते हैं और गतिशील होते हैं। मैं अपनी तुलना से उन विशेष नोड्स को अनदेखा करना चाहता हूं।दो JSONs
मैं वर्तमान में तुलना करने के लिए org.SkyScreamer से JSONAssert का उपयोग कर रहा हूं। यह मुझे अच्छा कंसोल आउटपुट देता है लेकिन किसी भी विशेषताओं को अनदेखा नहीं करता है।
पूर्व के लिए।
java.lang.AssertionError messageHeader.sentTime
expected:null
got:09082016 18:49:41.123
अब यह गतिशील आता है और इसे अनदेखा किया जाना चाहिए। जैसे
JSONAssert.assertEquals(expectedJSONString, actualJSONString,JSONCompareMode, *list of attributes to be ignored*)
कुछ यह बहुत अच्छा कोई JSONAssert में एक समाधान का सुझाव है, तो हो सकता है। हालांकि अन्य तरीकों का भी स्वागत है।
क्या होता है यदि आप JSONCompareMode को झूठी के रूप में प्रदान करते हैं तो $ {json-unit.ignore} प्लेसहोल्डर का उपयोग करना संभव है? क्या यह नोड्स को अनदेखा नहीं कर रहा है? –
@ ऋषल-देव-सिंह नहीं, यह विशिष्ट विशेषता को अनदेखा नहीं करता है – Prateik
@Prateik एक विकल्प के रूप में, आप तुलना से पहले विशेषताओं को हटा सकते हैं। एक और विकल्प के रूप में, आप इसे स्वयं कर सकते हैं, उदा। http://stackoverflow.com/questions/2253750/compare-two-json-objects-in-java –