JSONPath परीक्षक
JSON पेस्ट करें और JSONPath अभिव्यक्तियों को इंटरैक्टिवली परीक्षण करें। वास्तविक समय में मिलान परिणाम देखें, शुरुआत करने के लिए उदाहरण पथ के साथ।
इनपुट
आउटपुट
रीडमी
JSONPath क्या है?
JSONPath एक JSON के लिए क्वेरी भाषा है, जो XML के लिए XPath के समान काम करती है। यह आपको पाथ एक्सप्रेशन का उपयोग करके JSON स्ट्रक्चर को नेविगेट और डेटा निकालने देती है। एक JSONPath एक्सप्रेशन $ से शुरू होता है, जो दस्तावेज़ की रूट को दर्शाता है, और ऑब्जेक्ट्स को ट्रैवर्स करने के लिए डॉट नोटेशन (.key) या ब्रैकेट नोटेशन (['key']) का उपयोग करता है, और ऐरे एलिमेंट्स को एक्सेस करने के लिए [index] का उपयोग करता है।
JSONPath को मूल रूप से Stefan Gössner द्वारा 2007 में वर्णित किया गया था और तब से यह APIs, टेस्टिंग फ्रेमवर्क्स और डेटा प्रोसेसिंग पाइपलाइन्स में व्यापक रूप से उपयोग किया जाने वाला मानक बन गया है। यह कई भाषाओं और टूल्स में समर्थित है, जिसमें JavaScript, Python, Java और PostgreSQL और MySQL जैसे डेटाबेस शामिल हैं।
टूल विवरण
यह टूल आपको किसी भी वैध JSON दस्तावेज़ को पेस्ट करने और इसे क्वेरी करने के लिए एक JSONPath एक्सप्रेशन लिखने देता है। परिणाम तुरंत प्रदर्शित होते हैं जैसे ही आप टाइप करते हैं, सभी मेल खाने वाले मानों को एक फॉर्मेट किए गए JSON ऐरे के रूप में दिखाते हैं। मैच काउंट अलग से दिखाया जाता है ताकि आप जल्दी से सत्यापित कर सकें कि कितने नोड्स चुने गए थे।
उदाहरण
इनपुट JSON:
{
"store": {
"book": [
{ "title": "Moby Dick", "price": 8.99, "category": "fiction" },
{ "title": "War and Peace", "price": 12.5, "category": "fiction" },
{
"title": "A Brief History of Time",
"price": 7.99,
"category": "science"
}
]
}
}| एक्सप्रेशन | परिणाम |
|---|---|
$.store.book[*].title |
सभी किताब के शीर्षक |
$.store.book[0] |
पहली किताब ऑब्जेक्ट |
$.store.book[?(@.price < 10)] |
$10 से सस्ती किताबें |
$.store.book[?(@.category == "fiction")] |
केवल फिक्शन किताबें |
$..price |
दस्तावेज़ में कहीं भी सभी मूल्य मान |
विशेषताएं
- रीयल-टाइम मूल्यांकन — परिणाम अपडेट होते हैं जैसे ही आप एक्सप्रेशन टाइप करते हैं या JSON संपादित करते हैं
- एक समर्पित फील्ड में मैच काउंट प्रदर्शित करता है
- एक्सप्रेशन फील्ड पर कॉपी बटन तेजी से पुन: उपयोग के लिए
- क्लिपबोर्ड से JSON या एक्सप्रेशन तेजी से डालने के लिए पेस्ट बटन
- अमान्य JSON या गलत पाथ एक्सप्रेशन के लिए त्रुटि रिपोर्टिंग
यह कैसे काम करता है
JSONPath एक्सप्रेशन को jsonpath-plus लाइब्रेरी का उपयोग करके पार्स किए गए JSON के विरुद्ध मूल्यांकन किया जाता है। $ प्रतीक रूट एलिमेंट को संदर्भित करता है। चाइल्ड नोड्स को . या [] के साथ एक्सेस किया जाता है, वाइल्डकार्ड्स को * के साथ, रिकर्सिव डिसेंट को .. के साथ, और फिल्टर्स को [?(...)] के साथ। परिणाम हमेशा मेल खाने वाले मानों का एक ऐरे होता है, भले ही केवल एक मैच मिले।
विकल्प समझाया गया
| सिंटैक्स | अर्थ |
|---|---|
$ |
रूट एलिमेंट |
.key या ['key'] |
चाइल्ड प्रॉपर्टी |
[*] |
सभी ऐरे एलिमेंट्स |
[0] |
पहला ऐरे एलिमेंट (जीरो-इंडेक्स्ड) |
[-1] |
अंतिम ऐरे एलिमेंट |
[0,2] |
इंडेक्स 0 और 2 पर एलिमेंट्स |
[0:2] |
इंडेक्स 0 से 1 तक एलिमेंट्स (स्लाइस) |
..key |
रिकर्सिव डिसेंट — किसी भी गहराई पर key खोजें |
[?(@.price > 5)] |
फिल्टर — एलिमेंट्स जहां price 5 से अधिक है |
@ |
वर्तमान नोड (फिल्टर एक्सप्रेशन के अंदर उपयोग किया जाता है) |
उपयोग के मामले
- API विकास — सत्यापित करें कि एक REST क्लाइंट, टेस्ट सूट या डेटा मैपिंग टूल में उपयोग किया जाने वाला JSONPath सिलेक्टर एक API प्रतिक्रिया से अपेक्षित फील्ड्स निकालता है
- डेटा ट्रांसफॉर्मेशन — एक ट्रांसफॉर्मेशन स्क्रिप्ट लिखने से पहले नेस्टेड JSON पेलोड्स से कौन से मान निकालने हैं यह पहचानें
- JSONPath सीखना — वास्तविक डेटा पर पाथ सिंटैक्स को समझने के लिए इंटरैक्टिवली प्रयोग करें कि
..,[*]और[?()]जैसे ऑपरेटर कैसे काम करते हैं
सुझाव
- पूरे दस्तावेज़ में हर एक मान प्राप्त करने के लिए
$..*का उपयोग करें — अज्ञात JSON स्ट्रक्चर्स की खोज के लिए उपयोगी। - फिल्टर एक्सप्रेशन तुलना (
==,!=,<,>,<=,>=) का समर्थन करते हैं और नेस्टेड प्रॉपर्टीज को संदर्भित कर सकते हैं:[?(@.author.name == "Rees")]। - किसी प्रॉपर्टी को इसकी गहराई की परवाह किए बिना मेल खाने के लिए,
..रिकर्सिव डिसेंट का उपयोग करें:$..titleदस्तावेज़ में कहीं भी सभीtitleफील्ड्स खोजता है।