एक तेज़ और प्राइवेट JSONPath टेस्टर
बड़े या गहराई से नेस्टेड JSON डेटा के साथ काम करते समय, अपनी ज़रूरत की सटीक जानकारी निकालना मुश्किल हो सकता है। यह JSONPath टेस्टर आपकी क्वेरीज़ (queries) को लिखने, टेस्ट करने और डीबग करने के लिए एक लाइव एनवायरनमेंट प्रदान करता है। जैसे ही आप अपना एक्सप्रेशन टाइप करते हैं, यह टूल तुरंत आपके JSON पेलोड पर उसे इवैल्यूएट करता है, और आपको निकाले गए मान (extracted values) और उन सटीक पाथ (paths) दोनों को दिखाता है जहाँ वे मान मिले थे।
चूँकि यह पूरी तरह से क्लाइंट-साइड JSON पाथ इवैल्यूएटर है, इसलिए सारी प्रोसेसिंग आपके डिवाइस पर ही लोकली होती है। आपका JSON डेटा कभी भी किसी सर्वर पर नहीं भेजा जाता है। इसका मतलब है कि आप डेटा लीक या प्राइवेसी के उल्लंघन की चिंता किए बिना प्रोडक्शन API पेलोड, डेटाबेस एक्सपोर्ट या संवेदनशील कॉन्फ़िगरेशन फ़ाइलों को सुरक्षित रूप से पेस्ट कर सकते हैं।
डेवलपर्स के लिए मुख्य फ़ीचर्स
- लाइव इवैल्यूएशन: जैसे ही आप अपने JSON डेटा या क्वेरी में बदलाव करते हैं, रिज़ल्ट तुरंत अपडेट हो जाते हैं। किसी सबमिट बटन पर क्लिक करने या सर्वर के रिस्पॉन्स का इंतज़ार करने की कोई ज़रूरत नहीं है।
- सुरक्षित पार्सिंग: यह टूल आपकी क्वेरीज़ को प्रोसेस करने के लिए एक सुरक्षित इवैल्यूएशन इंजन (
eval: 'safe') का उपयोग करता है, जो जटिल फ़िल्टर एक्सप्रेशन के लिए पूरा सपोर्ट बनाए रखते हुए किसी भी दुर्भावनापूर्ण कोड को रन होने से रोकता है। - पाथ एक्सट्रैक्शन: मैच होने वाले मानों को दिखाने के साथ-साथ, यह टूल हर मैच के लिए एब्सोल्यूट पाथ भी जनरेट करता है। यदि आपको बाद में उन विशिष्ट नोड्स को प्रोग्रामेटिक रूप से अपडेट करने की आवश्यकता हो, तो यह बहुत उपयोगी होता है।
- इन-बिल्ट उदाहरण: यदि आप इस सिंटैक्स (syntax) के लिए नए हैं, तो आप एक सैंपल बुकस्टोर डेटासेट लोड कर सकते हैं और यह देखने के लिए कई पहले से लिखे गए एक्सप्रेशन पर क्लिक कर सकते हैं कि विभिन्न ऑपरेटर कैसे काम करते हैं।
JSONPath क्वेरी कैसे लिखें
JSON ऑब्जेक्ट्स और एरे में नेविगेट करने के लिए JSONPath एक विशिष्ट सिंटैक्स का उपयोग करता है। अगर आप JSONPath एक्सप्रेशन लॉजिक को टेस्ट करना चाहते हैं, तो इसके मुख्य ऑपरेटर्स को समझना आपके लिए मददगार होगा:
$रूट ऑब्जेक्ट या एरे को दर्शाता है। हर एब्सोल्यूट JSONPath एक्सप्रेशन इसी सिंबल से शुरू होता है।@प्रोसेस हो रहे वर्तमान नोड (current node) को दर्शाता है। इसका उपयोग मुख्य रूप से फ़िल्टर एक्सप्रेशन्स के अंदर किया जाता है।.या[]चाइल्ड ऑपरेटर्स हैं जिनका उपयोग प्रॉपर्टीज़ को चुनने के लिए किया जाता है। उदाहरण के लिए,$.store.bookऔर$['store']['book']एक ही काम करते हैं।..रिकर्सिव डिसेंट (recursive descent) ऑपरेटर है। यह JSON ट्री में किसी विशिष्ट की (key) को कहीं भी खोज लेता है, चाहे वह कितनी भी गहराई में नेस्टेड (nested) हो (जैसे,$..priceसभी कीमतों को ढूँढता है)।*एक वाइल्डकार्ड है जो किसी ऑब्जेक्ट या एरे के सभी एलिमेंट्स से मैच करता है। उदाहरण के लिए,$.store.*स्टोर ऑब्जेक्ट के ठीक अंदर मौजूद हर चीज़ को चुनता है।[?()]एक फ़िल्टर एक्सप्रेशन लागू करता है। आप इसके अंदर स्टैंडर्ड लॉजिकल ऑपरेटर्स का उपयोग कर सकते हैं। उदाहरण के लिए,$..book[?(@.author == 'Nigel Rees')]उस विशिष्ट लेखक द्वारा लिखी गई सभी किताबों को खोज लेगा।[start:end:step]आपको Python की तरह ही एरे को स्लाइस (slice) करने की सुविधा देता है।$.store.book[-1:]एरे की आखिरी किताब को चुनता है।
सामान्य उपयोग के मामले
API डेवलपमेंट और डिबगिंग। आधुनिक REST और GraphQL APIs अक्सर बड़े JSON पेलोड रिटर्न करते हैं। रिस्पॉन्स को पार्स और इन्स्पेक्ट करने के लिए टेम्परेरी कोड लिखने के बजाय, आप पेलोड को इस JSONPath ऑनलाइन टूल में पेस्ट कर सकते हैं ताकि यह तुरंत चेक किया जा सके कि डेटा स्ट्रक्चर सही है और आपकी क्वेरी सही फील्ड्स निकाल रही है।
ऑटोमेटेड टेस्टिंग। इंटीग्रेशन टेस्ट या एंड-टू-एंड टेस्ट (Postman, RestAssured, या Playwright जैसे टूल्स का उपयोग करके) लिखते समय, आपको अक्सर यह सुनिश्चित करना होता है कि JSON रिस्पॉन्स में कोई खास वैल्यू मौजूद है। jsonpath टेस्टर का उपयोग करके आप अपनी टेस्ट सुइट में हार्डकोड करने से पहले क्वेरी स्ट्रिंग को परफेक्ट बना सकते हैं।
डेटा एक्सट्रैक्शन और ट्रांसफॉर्मेशन। अगर आप डेटा माइग्रेट कर रहे हैं या ETL (Extract, Transform, Load) पाइपलाइन बना रहे हैं, तो आपको अक्सर खास ऐरे या ऑब्जेक्ट्स को अलग करना पड़ता है। अपने टारगेट डेटा को एक्सट्रैक्ट करने के लिए सही पाथ का पता लगाने के लिए आप इस टूल का उपयोग कर सकते हैं। अगर आपका सोर्स डेटा XML में है, तो आप पहले XML to JSON कनवर्टर का उपयोग कर सकते हैं। वहीं, अगर आपको इन्स्पेक्ट करने से पहले मिनिफाइड डेटा को फॉर्मेट करना है, तो JSON Formatter आपकी मदद कर सकता है। ट्रांसफॉर्मेशन से पहले और बाद में आपका डेटा कैसे बदलता है, यह देखने के लिए आप JSON Compare टूल का भी उपयोग कर सकते हैं।