
JSONPath v10.4.1
JSONPath का एक फोर्क, http://goessner.net/articles/JsonPath/ से
(देव डिपेंडेंसीज़ के लिए लाइसेंस भी देखें।)
JSONPath Plus
JSON दस्तावेज़ों (और JavaScript ऑब्जेक्ट्स) से डेटा का विश्लेषण करें, रूपांतरण करें, और चुनिंदा रूप से निकालें।
jsonpath-plus मूल विनिर्देश का विस्तार करते हुए कुछ अतिरिक्त ऑपरेटर जोड़ता है और कुछ ऐसे व्यवहारों को स्पष्ट करता है जिन्हें मूल विनिर्देश में स्पष्ट नहीं किया गया था।
ब्राउज़र डेमो या Runkit (Node) आज़माएँ।
कृपया ध्यान दें: यह प्रोजेक्ट वर्तमान में सक्रिय रूप से अनुरक्षित नहीं है। हम अच्छी तरह से प्रलेखित PRs या कुछ सरल अपडेट स्वीकार कर सकते हैं, लेकिन स्वयं समाधान या नई सुविधाएँ जोड़ने की तलाश में नहीं हैं।
विशेषताएँ
- मूल jsonpath विनिर्देश के साथ अनुरूप
- मूल विनिर्देश में प्रदान नहीं की गई सुविधाजनक वृद्धियाँ या विस्तार:
- मेल खाने वाले आइटम के पैरेंट को प्राप्त करने के लिए
^ - मेल खाने वाले आइटम के प्रॉपर्टी नाम (सरणी के रूप में) प्राप्त करने के लिए
~ - निम्नलिखित प्राप्त करने के लिए प्रकार चयनकर्ता:
- बुनियादी JSON प्रकार:
@null(),@boolean(),@number(),@string(),@array(),@object() @integer()- संयुक्त प्रकार
@scalar()(जो JavaScript ऑब्जेक्ट्स को क्वेरी करते समयundefinedऔर गैर-परिमित संख्याओं के साथ-साथ सभी बुनियादी गैर-ऑब्जेक्ट/गैर-फ़ंक्शन प्रकारों को भी स्वीकार करता है) @other()जिसका उपयोग उपयोगकर्ता-परिभाषितotherTypeCallbackके साथ किया जा सकता है- गैर-JSON प्रकार जिनका उपयोग गैर-JSON JavaScript ऑब्जेक्ट्स को क्वेरी करते समय किया जा सकता है (
@undefined(),@function(),@nonFinite())
- बुनियादी JSON प्रकार:
- फ़िल्टर के भीतर
@path/@parent/@property/@parentProperty/@rootशॉर्टहैंड चयनकर्ता - एस्केपिंग
- शेष अनुक्रम से बचने के लिए
` - फ़िल्टर में प्रॉपर्टी नामों के भीतर विशेष वर्णों से बचने के लिए
@['...']/?@['...']सिंटैक्स
- शेष अनुक्रम से बचने के लिए
$..को प्रलेखित करता है (सभी पैरेंट घटक प्राप्त करना)
- मेल खाने वाले आइटम के पैरेंट को प्राप्त करने के लिए
- ESM और UMD निर्यात प्रारूप
- क्वेरी किए गए मानों के अतिरिक्त, विभिन्न मेटा-जानकारी लौटा सकता है जिसमें मान के पथ या पॉइंटर, साथ ही पैरेंट ऑब्जेक्ट और पैरेंट प्रॉपर्टी नाम (संशोधन की अनुमति देने के लिए) शामिल हैं।
- पथ, सरणियों और पॉइंटर्स के बीच रूपांतरण के लिए उपयोगिताएँ
- मूल विनिर्देश में अनुमत मूल्यांकनों को रोकने या मूल्यांकित मानों के लिए सैंडबॉक्स प्रदान करने का विकल्प।
- परिणाम प्राप्त होते ही उन्हें संभालने के लिए कॉलबैक का विकल्प।
बेंचमार्किंग
json-querying-performance-testing के अनुसार, अन्य json क्वेरी लाइब्रेरीज़ की तुलना में jsonpath-plus बड़े और छोटे दोनों डेटासेट के साथ लगातार प्रदर्शनकारी है। आप प्रोजेक्ट को स्वयं चलाकर और अधिक परफ़ केस जोड़कर इन निष्कर्षों को सत्यापित कर सकते हैं।
इंस्टॉल
npm install jsonpath-plus
सेटअप
Node.js
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
ब्राउज़र
ब्राउज़र उपयोग के लिए आप सीधे dist/index-browser-umd.cjs शामिल कर सकते हैं; किसी
Browserify जादू की आवश्यकता नहीं है:
<script src="node_modules/jsonpath-plus/dist/index-browser-umd.cjs"></script>
<script>
const result = JSONPath.JSONPath({path: '...', json: {}});
</script>
ESM (आधुनिक ब्राउज़र)
आप ES6 मॉड्यूल इम्पोर्ट्स (आधुनिक ब्राउज़रों के लिए) का भी उपयोग कर सकते हैं:
<script type="module">
import {
JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';
const result = JSONPath({path: '...', json: {}});
</script>
ESM (बंडलर)
या यदि आप अपनी JavaScript को बंडल कर रहे हैं (उदाहरण के लिए, Rollup के साथ), तो बस इसका उपयोग करें,
यह ध्यान में रखते हुए कि mainFields
में ब्राउज़र बिल्ड्स के लिए browser शामिल होना चाहिए (Node के लिए, डिफ़ॉल्ट, जो
module की जाँच करता है, ठीक होना चाहिए):
import {JSONPath} from 'jsonpath-plus';
const result = JSONPath({path: '...', json});
उपयोग
उपलब्ध पूर्ण सिग्नेचर यह है:
const result = JSONPath([options,] path, json, callback, otherTypeCallback);
तर्क path, json, callback, और otherTypeCallback
को वैकल्पिक रूप से options पर (उपलब्ध अन्य किसी भी
प्रॉपर्टी के साथ) व्यक्त किया जा सकता है।
ध्यान दें कि result में पाए गए सभी आइटम होंगे (वैकल्पिक रूप से
एक array में लपेटे गए) जबकि callback का उपयोग तब किया जा सकता है जब आप
प्रत्येक आइटम के मिलने पर कोई ऑपरेशन करना चाहते हैं, callback फ़ंक्शन
परिणाम में पाए जाने वाले स्वतंत्र आइटमों की संख्या के आधार पर
0 से N बार निष्पादित होता है।
JSONPath के उपलब्ध तर्कों के बारे में अधिक जानकारी के लिए नीचे दिए गए दस्तावेज़ देखें।
API docs भी देखें।
Properties
वे प्रॉपर्टीज़ जो options ऑब्जेक्ट पर या evaluate मेथड पर (पहले तर्क के रूप में) दी जा सकती हैं, उनमें शामिल हैं: