JSONPath से JSON Query
JSONPath से JSON क्वेरी करें: वाइल्डकार्ड, रिकर्सिव डिसेंट, स्लाइस और [?(@.price < 10)] जैसे फ़िल्टर एक्सप्रेशन। टाइप करते ही नतीजे अपडेट होते हैं। jq सिंटैक्स नहीं।
$ रूट है; .name या ['name'] चाइल्ड चुनता है; [0] ऐरे का आइटम; [*] सभी आइटम; .. किसी भी गहराई पर खोजता है; [?(@.price < 10)] फ़िल्टर करता है; [-1:] आखिरी आइटम लेता है।
पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।
संबंधित टूल्स
सभी देखेंJSON Query (JSONPath) क्या है?
JSON Query टूल आपके JSON पर JSONPath एक्सप्रेशन चलाता है और हर मिलते हुए मान को JSON ऐरे के रूप में दिखाता है। यह वाइल्डकार्ड, रिकर्सिव डिसेंट, ऐरे स्लाइस और फ़िल्टर एक्सप्रेशन का समर्थन करता है। ध्यान दें: यह JSONPath सिंटैक्स ($.store.book[*].title) इस्तेमाल करता है, jq का पाइप सिंटैक्स नहीं।
JSON Query (JSONPath) का उपयोग कैसे करें
- JSON को JSON इनपुट बॉक्स में पेस्ट करें (या किसी उदाहरण पर क्लिक करें, जो नमूना डेटा भी लोड करता है)।
- JSONPath एक्सप्रेशन टाइप करें, जैसे
$..price। - आउटपुट में मिलते हुए मान पढ़ें; लेबल बताता है कि कितने मिले।
- परिणाम ऐरे को कॉपी करें से कॉपी करें।
उदाहरण
{"store":{"book":[{"title":"A","price":8},{"title":"B","price":12}]}}
Query: $.store.book[?(@.price < 10)].title [ "A" ]
JSON Query (JSONPath) का उपयोग कब करें
JSONPath स्वीकार करने वाले टूल (API गेटवे, Kubernetes kubectl -o jsonpath, टेस्ट फ्रेमवर्क, मॉनिटरिंग) में इस्तेमाल से पहले JSONPath एक्सप्रेशन टेस्ट करने के लिए इसका उपयोग करें। अगर आपको पाइप, map या ऑब्जेक्ट निर्माण जैसी jq सुविधाएँ चाहिए तो jq ही इस्तेमाल करें – वे यहाँ समर्थित नहीं हैं। एक सटीक पाथ के लिए JSON Path Finder सरल है।
JSON Query (JSONPath) कैसे काम करता है
क्वेरी jsonpath-plus लाइब्रेरी (Goessner JSONPath और एक्सटेंशन) से चलाई जाती हैं। $ रूट है, .name या ['name'] प्रॉपर्टी चुनता है, [0] इंडेक्स, [*] सभी चाइल्ड, .. हर गहराई पर खोजता है, [start:end] ऐरे को स्लाइस करता है (ऋणात्मक इंडेक्स अंत से गिने जाते हैं) और [?(…)] @ को वर्तमान आइटम मानकर फ़िल्टर करता है। फ़िल्टर एक्सप्रेशन jsonpath-plus के सुरक्षित मूल्यांकनकर्ता में चलते हैं, जो तुलना और लॉजिकल ऑपरेटर समर्थित करता है पर मनमाना JavaScript नहीं चलाता। परिणाम हमेशा मिलानों का ऐरे होता है, जो 2 स्पेस इंडेंटेशन के साथ छपता है।
सामान्य उपयोग मामले
- API रिस्पॉन्स से सारी कीमतें या id निकालना
- API टेस्ट या मॉनिटरिंग नियमों के लिए JSONPath टेस्ट करना
- किसी शर्त से ऐरे आइटम फ़िल्टर करना
- kubectl jsonpath शैली की क्वेरी का प्रोटोटाइप बनाना
सुरक्षा नोट
सब कुछ आपके ब्राउज़र में ही चलता है; आप जो कोड पेस्ट करते हैं वह कहीं अपलोड नहीं होता।
अक्सर पूछे जाने वाले प्रश्न
क्या यह jq है?
नहीं। यह JSONPath इस्तेमाल करता है, जो अलग क्वेरी भाषा है। jq के पाइप और फ़ंक्शन समर्थित नहीं हैं।
परिणाम हमेशा ऐरे क्यों होता है?
JSONPath एक्सप्रेशन कितने भी मान मिला सकता है, इसलिए सभी मिलान एक ऐरे में लौटाए जाते हैं।
क्या मेरा JSON किसी सर्वर को भेजा जाता है?
नहीं, क्वेरी आपके ब्राउज़र में चलती है।
क्या यहाँ बड़ी संख्याओं की सटीकता खो जाती है?
हाँ, मान JavaScript संख्याओं के रूप में मूल्यांकित होते हैं, इसलिए 2^53 से बड़े पूर्णांक क्वेरी परिणाम में राउंड हो सकते हैं।