यह क्या करता है
JSONPath, JSON के लिए एक क्वेरी भाषा है, जैसे XML के लिए XPath। $.store.book[*].title जैसी क्वेरी दस्तावेज़ के अंदर जाकर आपकी ज़रूरत की वैल्यू चुनती है। यह इवैल्यूएटर आपके पेस्ट किए JSON पर JSONPath एक्सप्रेशन चलाता है और हर मिलान को JSON ऐरे के रूप में दिखाता है: मिली हुई वैल्यू, उनके सामान्यीकृत पाथ (जैसे $['store']['book'][0]['title']), या दोनों।
यह 2024 में प्रकाशित IETF मानक RFC 9535 का पालन करता है, इसलिए नतीजे JavaScript, Java, Python, Go और दूसरी भाषाओं की आधुनिक लाइब्रेरी से मेल खाते हैं। कोड में डालने से पहले क्वेरी आज़माने, यह समझने के लिए कि कोई फ़िल्टर कुछ क्यों नहीं लौटा रहा, या बड़े API रिस्पॉन्स से कुछ फ़ील्ड निकालने के लिए इसका इस्तेमाल करें।
इस्तेमाल कैसे करें
- JSON बॉक्स में JSON पेस्ट करें,
.jsonफ़ाइल अपलोड करें, या क्लासिक बुकस्टोर दस्तावेज़ लोड करने के लिए उदाहरण पर क्लिक करें। - JSONPath एक्सप्रेशन में क्वेरी लिखें। टाइप करते ही मिलान अपडेट होते हैं।
- दिखाएँ में चुनें: वैल्यू, पाथ या पाथ/वैल्यू जोड़े।
- नतीजा कॉपी या डाउनलोड करें। क्वेरी में सिंटैक्स की गलती हो तो वह कैरेक्टर बताया जाता है जहाँ पार्सिंग रुकी।
सिंटैक्स सार
| एक्सप्रेशन | अर्थ |
|---|---|
$ | दस्तावेज़ का रूट |
.name या ['name'] | ऑब्जेक्ट का मेंबर |
[0], [-1] | ऐरे का एलिमेंट (नेगेटिव अंत से गिने जाते हैं) |
[1:3], [::2] | स्लाइस: शुरुआत, अंत (शामिल नहीं) और स्टेप |
* | सभी मेंबर या एलिमेंट |
..name | किसी भी गहराई पर name |
[?@.price < 10] | वे चाइल्ड जिनके लिए फ़िल्टर सही है; @ मौजूदा आइटम है |
फ़िल्टर शर्तों को &&, || और ! से जोड़ सकते हैं, $ के ज़रिए दस्तावेज़ के दूसरे हिस्सों से तुलना कर सकते हैं और फ़ंक्शन बुला सकते हैं: length(@.tags) > 2, count(@.items[*]) == 0, पूरी स्ट्रिंग को रेगुलर एक्सप्रेशन से मिलाने के लिए match(@.code, '[A-Z]{3}'), और कहीं भी मिलान के लिए search(@.title, 'Ring')।
उदाहरण
उदाहरण वाले बुकस्टोर डेटा पर यह क्वेरी 10 से सस्ती किताबों के शीर्षक चुनती है:
$.store.book[?@.price < 10].title
और यह लौटाती है:
["Sayings of the Century", "Moby Dick"]
ISBN वाली किताबों के लेखक देखने के लिए इसे $..book[?@.isbn].author करें, या साइकिल समेत दुकान की सारी कीमतें इकट्ठा करने के लिए $..price लिखें।
अक्सर पूछे जाने वाले सवाल
› कौन-सा JSONPath सिंटैक्स समर्थित है?
RFC 9535 का मानक सिंटैक्स: डॉट और ब्रैकेट वाले मेंबर नाम, वाइल्डकार्ड, ऐरे इंडेक्स (नेगेटिव भी), स्लाइस, .. से हर गहराई पर खोज, तुलना और && || ! वाले फ़िल्टर, और length(), count(), match(), search() तथा value() फ़ंक्शन। पुराना तरीका ?(@.price < 10) भी चलता है, क्योंकि कोष्ठक सिर्फ़ समूह बनाते हैं।
› मेरी क्वेरी खाली ऐरे क्यों लौटाती है?
खाली ऐरे का मतलब है कि क्वेरी सही है, पर कुछ मेल नहीं खाया। मेंबर नाम (बड़े-छोटे अक्षर मायने रखते हैं) जाँचें और देखें कि वैल्यू ऐरे है या ऑब्जेक्ट। $..* जैसी चौड़ी क्वेरी को 'दिखाएँ: पाथ' के साथ चलाकर देखें कि दस्तावेज़ में क्या है।
› क्या मैं [(@.length-1)] जैसे स्क्रिप्ट एक्सप्रेशन इस्तेमाल कर सकता हूँ?
नहीं। स्क्रिप्ट एक्सप्रेशन मनमाना कोड चलाते हैं और मानक का हिस्सा नहीं हैं। इसके बजाय नेगेटिव इंडेक्स लें: [-1] आख़िरी एलिमेंट है और [-2:] आख़िरी दो।
› क्या मेरा JSON किसी सर्वर पर भेजा जाता है?
नहीं। क्वेरी को पेज का अपना कोड आपके ब्राउज़र में ही पार्स और इवैल्यूएट करता है; कुछ भी अपलोड नहीं होता।