JSONPath परीक्षक
JSONPath अभिव्यक्तियों से JSON में खोजिए और हर मेल उसके पाथ के साथ देखिए
इस टूल के बारे में
अपने ही JSON पर JSONPath अभिव्यक्तियाँ जाँचिए और हर मेल को उसके मान तथा ठोस पथ दोनों के साथ देखिए। वह वाक्य-रचना समर्थित है जो रोज़मर्रा के काम को समेटती है: बिंदु और कोष्ठक संकेतन, सूची अनुक्रमांक (ऋणात्मक सहित), वाइल्डकार्ड, यूनियन (['a','b']) और पुनरावर्ती अवतरण ($..price)।
हर मेल के साथ मिलने वाला पथ चुपचाप उपयोगी हिस्सा है: किसी गहरे दस्तावेज़ पर $..id पूछिए और हर परिणाम ठीक-ठीक बता देगा कि वह कहाँ रहता है ($.data.items[3].id), जो सीधे कोड में चिपकाने के लिए तैयार है। यह “इस ढेर में कहीं” को एक सटीक पते में बदल देता है।
फ़िल्टर अभिव्यक्तियाँ ([?(@.price < 10)]) अभी लागू नहीं हैं — टूल ग़लत परिणाम देने के बजाय यह बात स्पष्ट कह देता है। संरचनात्मक निष्कर्षण के लिए, जो JSONPath का अधिकांश उपयोग है, सब कुछ काम करता है।
अक्सर पूछे जाने वाले प्रश्न
- $.a.b और $..b में क्या अंतर है?
- $.a.b एक निश्चित रास्ता पकड़ता है: जड़ में कुंजी a, फिर उसके भीतर कुंजी b। $..b (पुनरावर्ती अवतरण) दस्तावेज़ में कहीं भी, किसी भी गहराई पर हर b ढूँढ़ लेता है। पुनरावर्ती अवतरण शक्तिशाली है पर चौंका सकता है — यह उन जगहों के भीतर बसी b कुंजियों से भी मेल खा जाता है जिनके बारे में आपने सोचा ही नहीं था।
- स्पेस या डैश वाली कुंजियों तक कैसे पहुँचूँ?
- उद्धरण चिह्नों के साथ कोष्ठक संकेतन से: $['my key'] या $.data['content-type']। बिंदु संकेतन केवल उन कुंजियों पर चलता है जिनके नाम वैध पहचानकर्ता जैसे हों।
- क्या ऋणात्मक सूची अनुक्रमांक चलते हैं?
- हाँ — [-1] अंतिम तत्व है, [-2] उससे पहले वाला, उसी परिपाटी के अनुसार जिसे Python ने लोकप्रिय किया और RFC 9535 ने अपनाया। [0] अब भी पहला तत्व ही है।
- क्या JSONPath मानकीकृत है?
- 2024 से हाँ — RFC 9535 उसकी वाक्य-रचना और अर्थ तय करता है। उससे पहले लिखे गए क्रियान्वयन किनारे के मामलों में भिन्न हैं (ख़ासकर फ़िल्टर और यूनियन में), इसलिए वही अभिव्यक्ति अलग-अलग लाइब्रेरी में अलग व्यवहार कर सकती है; जिस क्रियान्वयन के साथ तैनाती करनी है, उसी पर जाँचिए।