JSON पथ परीक्षणकर्ता
हमारे मुफ्त ऑनलाइन मूल्यांकन उपकरण का उपयोग करके अपने JSON डेटा पर JSONPath अभिव्यक्तियों का तुरंत परीक्षण करें। जटिल JSON संरचनाओं से विशिष्ट डेटा तत्व निकालने हेतु JSONPath क्वेरी लिखें और टाइप करते ही वास्तविक समय में परिणाम देखें। चाहे आप JSONPath सिंटैक्स सीख रहे हों, API प्रतिक्रियाओं को निकालने में समस्याओं का समाधान कर रहे हों, डेटा पाइपलाइनों को कॉन्फ़िगर कर रहे हों, बिल्ड ऑटोमेशन नियम बना रहे हों, या नेस्टेड JSON दस्तावेज़ों का अध्ययन कर रहे हों – यह इंटरैक्टिव टेस्टर दस्तावेज़ पेड़ में मेल खाने वाले मानों को हाइलाइट करके तत्काल प्रतिक्रिया प्रदान करता है।यह फ़िल्टर एक्सप्रेशन, पुनरावृत्तिमूलक अवतरण, सरणी स्लाइसिंग और वाइल्डकार्ड चयन सहित सभी मानक JSONPath सुविधाओं का समर्थन करता है।
क्या है
JSONPath Tester एक इंटरैक्टिव डेवलपमेंट टूल है जो JSON दस्तावेज़ों के विरुद्ध JSONPath एक्सप्रेशन को रियल टाइम में लिखने, परीक्षण करने और डीबग करने के लिए उपयोग किया जाता है। JSONPath JSON के लिए एक क्वेरी भाषा है, जो XML के लिए XPath के समान है, और JSON डेटा संरचनाओं के विशिष्ट भागों को नेविगेट और निकालने के लिए एक संक्षिप्त सिंटैक्स प्रदान करती है। इसे मूल रूप से स्टीफन गोस्नर द्वारा डिज़ाइन किया गया था और तब से इसे विभिन्न प्रोग्रामिंग भाषाओं (जावा के लिए Jayway JsonPath, पायथन के लिए jsonpath-ng, जावास्क्रिप्ट के लिए JSONPath Plus) में मानकीकृत किया गया है। हमारा टेस्टर पूर्ण JSONPath विनिर्देश का समर्थन करता है, जिसमें शामिल हैं: रूट चयन ($), चाइल्ड चयन (.key या ['key']), वाइल्डकार्ड (* सभी तत्वों के लिए), रिकर्सिव डिसेंट (.. सभी स्तरों की खोज के लिए), ऐरे इंडेक्सिंग ([n]), ऐरे स्लाइसिंग ([start:end:step]), फ़िल्टर एक्सप्रेशन (@.field == value या @.field > n), स्क्रिप्ट एक्सप्रेशन, इंडेक्स या की का यूनियन, और स्ट्रिंग फ़ंक्शन (जैसे .length())। यह टूल JSONPath एक्सप्रेशन के लिए सिंटैक्स वैलिडेशन प्रदान करता है, मूल्यांकन से पहले अमान्य एक्सप्रेशन को हाइलाइट करता है, और परिणामों को ऐरे फ़ॉर्मेट (जैसा कि JSONPath द्वारा लौटाया गया) और ट्री व्यू दोनों में प्रदर्शित करता है, जो दस्तावेज़ संरचना में मिलान स्थानों को दर्शाता है।
कैसे उपयोग करें
- अपने JSON दस्तावेज़ को इंटरफ़ेस के बाईं ओर स्थित JSON डेटा पैनल में पेस्ट करें या दर्ज करें।
- अपना JSONPath एक्सप्रेशन शीर्ष पर स्थित क्वेरी इनपुट फ़ील्ड में टाइप करें, रूट एलिमेंट के लिए $ से शुरू होने वाले मानक JSONPath सिंटैक्स का उपयोग करें।
- अपने JSON दस्तावेज़ से निकाले गए सभी मिलान मानों को दिखाते हुए, टाइप करते ही रीयल-टाइम परिणाम पैनल को स्वचालित रूप से अपडेट होते देखें।
- मिलान किए गए मानों के पैनल को ब्राउज़ करें ताकि आप अपनी अभिव्यक्ति द्वारा कोड में लौटाए गए परिणामों की सटीक सरणी देख सकें।
- इनपुट के नीचे स्थित त्रुटि/डिबग पैनल का उपयोग करें ताकि JSONPath सिंटैक्स त्रुटियों को त्वरित समस्या निवारण के लिए स्थिति संकेतकों के साथ देख सकें।
उदाहरण
इनपुट: JSON: {store:{book:[{title:A},{title:B}]}} पथ: $.store.book[*].title
प्रक्रिया: नेविगेट करें root.store.book → वाइल्डकार्ड * सभी आइटम → निकालें .title
परिणाम: ["A", "B"]
इनपुट: पथ: $..price (पुनरावर्ती अवरोहण)
प्रक्रिया: सभी स्तरों पर पुनरावर्ती खोजें → कुंजी 'price' से मिलाएँ → मान एकत्र करें
परिणाम: [9.99, 14.50, 7.00]
संबंधित खोजें
लोग यह भी खोजते हैं: जेसनपथ, JSON पथ परीक्षक, जेसनपथ मूल्यांकनकर्ता, जेसनपथ क्वेरी, जेसनपथ व्यंजक, जेसन डेटा निष्कर्षण।
जेसनपथJSON पथ परीक्षकजेसनपथ मूल्यांकनकर्ताजेसनपथ क्वेरीजेसनपथ व्यंजकजेसन डेटा निष्कर्षणजेसन क्वेरी भाषाजेसन फ़िल्टर
अक्सर पूछे जाने वाले प्रश्न
JSONPath क्या है और मुझे इसका उपयोग मूल कोड के बजाय कब करना चाहिए?
JSONPath JSON के लिए एक क्वेरी भाषा है जो आपको नेस्टेड JSON संरचनाओं से लूप और सशर्त तर्क लिखे बिना डेटा चुनने, फ़िल्टर करने और निकालने के लिए संक्षिप्त अभिव्यक्तियाँ लिखने की सुविधा देता है। आपको JSONPath का उपयोग तब करना चाहिए जब आपको अपने एप्लिकेशन में हार्डकोड करने के बजाय बाहरी फ़ाइलों, टूल्स या घोषणात्मक विनिर्देशों में डेटा निष्कर्षण नियमों को कॉन्फ़िगर करने की आवश्यकता हो। सामान्य उपयोग के मामलों में शामिल हैं: API गेटवे प्रतिक्रिया परिवर्तनों को कॉन्फ़िगर करना (जैसे AWS API गेटवे मैपिंग टेम्पलेट), ETL पाइपलाइनों के लिए डेटा निष्कर्षण नियम लिखना जहाँ व्यावसायिक विश्लेषक JSONPath अभिव्यक्तियाँ लिख सकते हैं, डैशबोर्ड और रिपोर्टिंग टूल्स में गतिशील फ़िल्टरिंग लागू करना, स्वचालित परीक्षण में जटिल JSON से परीक्षण डेटा फिक्स्चर का चयन करना, और लो-कोड/नो-कोड टूल्स बनाना जहाँ उपयोगकर्ता बिना कोडिंग के डेटा निष्कर्षण निर्दिष्ट करते हैं। प्रोग्रामिंग भाषा पुस्तकालय रनटाइम पर JSONPath अभिव्यक्तियों को संकलित करते हैं, इसलिए आपको पुन: तैनाती के बिना गतिशील, कॉन्फ़िगरेबल डेटा निष्कर्षण मिलता है।
बुनियादी और उन्नत JSONPath एक्सप्रेशन के लिए सिंटैक्स क्या है?
बुनियादी JSONPath अभिव्यक्तियाँ $ (रूट) से शुरू होती हैं, ऑब्जेक्ट चाइल्ड एक्सेस के लिए .key का उपयोग करें ($..store.book[0].title किसी भी स्टोर में पहली पुस्तक के शीर्षक पर नेविगेट करता है), ऐरे इंडेक्सिंग के लिए [n] का उपयोग करें, ऐरे वाइल्डकार्ड के लिए [*] का उपयोग करें, और रिकर्सिव डिसेंट के लिए .. का उपयोग करें (किसी भी नेस्टिंग स्तर पर सभी शीर्षक फ़ील्ड खोजें)। उन्नत अभिव्यक्तियों में फ़िल्टर प्रेडिकेट्स [@.price > 10 सरणियों को शर्तों के अनुसार फ़िल्टर करने के लिए], ऐरे स्लाइसिंग [0:5:2 प्रारंभ:अंत:चरण के लिए], यूनियन ऑपरेटर [0,2,4 एकाधिक इंडेक्स के लिए], ऐरे आकार प्राप्त करने के लिए लंबाई फ़ंक्शन, और विशेष वर्णों या रिक्त स्थान वाली कुंजियों के लिए ब्रैकेट नोटेशन ['key'] शामिल हैं। उदाहरण के लिए: $.store.book[?(@.price < 10)].title $10 से कम मूल्य वाली पुस्तकों के शीर्षक चुनता है, और $..[?(@.category == fiction)] किसी भी नेस्टिंग स्तर पर फिक्शन के बराबर श्रेणी फ़ील्ड वाली सभी वस्तुओं का चयन करता है।
JSONPath, XPath और JSON Pointer से कैसे भिन्न है?
JSONPath, XPath (XML के लिए) से प्रेरित है, लेकिन JSON के सरल डेटा मॉडल के लिए सरलीकृत किया गया है: JSONPath रूट के लिए XPath के / के बजाय $ का उपयोग करता है, XPath के /key चाइल्ड एक्सिस के बजाय .key का उपयोग करता है, XPath के // के समान रिकर्सिव डिसेंट के लिए .. को समर्थन करता है, और XPath के प्रेडिकेट्स के समान फ़िल्टर एक्सप्रेशन शामिल करता है। JSON Pointer (RFC 6901) एक बहुत सरल मानक है जो /separated/keys/and/0/array/indexes का उपयोग करके JSON दस्तावेज़ में एक विशिष्ट मान की पहचान करता है। JSONPath के विपरीत, जो कई मान लौटा सकता है और परिणामों को फ़िल्टर कर सकता है, JSON Pointer हमेशा ठीक एक मान लौटाता है या विफल हो जाता है। JSONPath सही विकल्प है जब आपको कई मिलान वाले मान निकालने, रिकर्सिवली नेविगेट करने, परिणामों को फ़िल्टर करने, या गतिशील रूप से क्वेरी निर्दिष्ट करने की आवश्यकता होती है। JSON Pointer सरल है और तब उपयुक्त है जब आप एक विशिष्ट मान की विशिष्ट पहचान करते हैं (जैसे JSON Patch ऑपरेशन या OpenAPI $ref संदर्भों में)।
क्या मैं विभिन्न प्रोग्रामिंग भाषाओं में JSONPath का उपयोग कर सकता हूँ?
हाँ, JSONPath लाइब्रेरीज़ अधिकांश प्रमुख प्रोग्रामिंग भाषाओं के लिए उपलब्ध हैं। उल्लेखनीय कार्यान्वयनों में शामिल हैं: जावा के लिए Jayway JsonPath (सबसे अधिक सुविधा संपन्न कार्यान्वयन, Spring Boot के माध्यम से व्यापक रूप से उपयोग किया जाता है), पायथन के लिए jsonpath-ng और jsonpath-python, जावास्क्रिप्ट (Node.js और ब्राउज़र, इस टूल द्वारा उपयोग किया जाता है) के लिए JSONPath Plus, Go के लिए GoJSONGo, Ruby के लिए rust-jsonpath, और Perl के लिए JSON::Path। अधिकांश कार्यान्वयन समान सिंटैक्स का पालन करते हैं लेकिन फ़िल्टर एक्सप्रेशन समर्थन, रिकर्सिव डिसेंट व्यवहार और किनारे के मामलों (edge cases) को संभालने में सूक्ष्म अंतर होते हैं। भाषाओं के बीच JSONPath एक्सप्रेशन पोर्ट करते समय, पूरी तरह से परीक्षण करें क्योंकि जटिल शर्तों वाले फ़िल्टर एक्सप्रेशन अलग व्यवहार कर सकते हैं। कुछ कार्यान्वयन मूल Goessner विनिर्देश के करीब हैं जबकि अन्य JSONPath के लिए नए IETF RFC 9535 ड्राफ़्ट मानक का पालन करते हैं, जो फरवरी 2024 में प्रकाशित हुआ था।
मेरी JSONPath अभिव्यक्ति खाली परिणाम क्यों लौटा रही है?
खाली JSONPath परिणामों के सामान्य कारणों में शामिल हैं: गलत पथ ट्रैवर्सल (जांचें कि आपके पथ का प्रत्येक स्तर दस्तावेज़ में मौजूद है), केस संवेदनशीलता (JSON कुंजियाँ केस-संवेदनशील होती हैं, Name और name अलग-अलग हैं), लापता रिकर्सिव डिसेंट चरण (यदि आप सटीक नेस्टिंग गहराई नहीं जानते हैं तो .. का उपयोग करें), गलत ऐरे इंडेक्स (JSON ऐरे शून्य-आधारित होते हैं, इसलिए [0] पहला तत्व है), ब्रैकेट नोटेशन में लापता कोट्स (['key'] होना चाहिए न कि [key]), फ़िल्टर एक्सप्रेशन सिंटैक्स त्रुटियाँ (फ़िल्टर में वर्तमान नोड को संदर्भित करने के लिए $ के बजाय @ का उपयोग करें), और परिणाम नोड का null या undefined होना (कुछ इम्प्लीमेंटेशन में JSONPath null नोड्स को छोड़ सकता है)। अपनी अभिव्यक्ति को एक बुनियादी पथ पर सरल बनाकर शुरू करें और सत्यापित करें कि यह परिणाम लौटाता है, फिर धीरे-धीरे जटिलता जोड़ें। जटिल अभिव्यक्तियाँ बनाने से पहले दस्तावेज़ संरचना की पुष्टि करने के लिए हमारे परीक्षक के ट्री व्यू का उपयोग करें।