यदि कोई शर्त मेल खाती है तो मैं पूरे JSON को वापस करना चाहता हूं।

टेस्ट जेसन:

    {
            "EVENTID": 2624367601,
            "RECEIVERNAME": "CM.MYHR",
            "SENDERNAME": "CM.EIS.CF1",
            "AGREEMENTNAME": null   
    }

मैं https://jsonpath.curiousconcept.com में कोशिश कर रहा हूं, लेकिन समझ नहीं पाया। मैंने सोचा कि निम्नलिखित अभिव्यक्ति काम करनी चाहिए, लेकिन यह हमेशा खाली लौटती है।

$.[?(@.SENDERNAME==CM.EIS.CF1)]

कृपया मदद करे।

-1
Autorun 26 फरवरी 2020, 23:56

2 जवाब

यदि आप चाहते हैं कि जेसन इनपुट से है, तो मेरी समझ के अनुसार आपको नीचे अभिव्यक्ति का उपयोग करना होगा:

$.

मैंने इसका परीक्षण https://jsonpath.curiousconcept.com/ में किया है।

0
Sumit2500 28 फरवरी 2020, 16:07

आपके पास केवल एक जेसन का टुकड़ा है। इसे इस तरह आजमाएं:

{
  "events": [
{
            "EVENTID": 2624367601,
            "RECEIVERNAME": "CM.MYHR",
            "SENDERNAME": "CM.EIS.CF1",
            "AGREEMENTNAME": null   
    }

]
}

और उपयोग करें:

$.*[?(@.SENDERNAME=='CM.EIS.CF1')]
0
Jack Fleeting 27 फरवरी 2020, 00:48
धन्यवाद जैक। चूंकि मैं अपना इनपुट JSON प्रारूप नहीं बदल सकता जो एक सरणी नहीं है, क्या इसका मतलब यह है कि मैं jsonPath फ़िल्टरिंग का उपयोग नहीं कर सकता जो केवल ARRAY पर काम करता है? सादा जेसन फ़िल्टर करने पर कोई विकल्प या कामकाज?
 – 
Autorun
2 मार्च 2020, 21:28
- आप ऐसा कर सकते हैं (या ऐसा कुछ) पायथन और कुछ जेसन और जेसनपैथ पुस्तकालयों का उपयोग करके; वे आपके मूल परीक्षण जोंस को संशोधित किए बिना संसाधित कर सकते हैं। यदि यह आपके लिए प्रासंगिक है तो मैं आपको अधिक जानकारी दे सकता हूं (या उत्तर पोस्ट कर सकता हूं)।
 – 
Jack Fleeting
2 मार्च 2020, 23:26