
JSONPath v10.4.1
JSONPath का एक फोर्क, http://goessner.net/articles/JsonPath/ से
(यह भी देखें डेवलपमेंट निर्भरताओं के लाइसेंस)
JSONPath Plus
JSON दस्तावेज़ों (और JavaScript ऑब्जेक्ट्स) से डेटा का विश्लेषण, रूपांतरण और चयनात्मक निष्कर्षण करें।
jsonpath-plus मूल विनिर्देश का विस्तार करते हुए कुछ अतिरिक्त ऑपरेटर जोड़ता है और कुछ व्यवहारों को स्पष्ट करता है जिन्हें मूल विनिर्देश ने स्पष्ट नहीं किया था।
ब्राउज़र डेमो या Runkit (Node) आज़माएँ।
कृपया ध्यान दें: यह प्रोजेक्ट वर्तमान में सक्रिय रूप से अनुरक्षित नहीं है। हम अच्छी तरह से प्रलेखित PR या कुछ सरल अपडेट स्वीकार कर सकते हैं, लेकिन हम स्वयं सुधार करने या नई सुविधाएँ जोड़ने के लिए तत्पर नहीं हैं।
विशेषताएं
- मूल 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 निर्यात प्रारूप
- क्वेरी किए गए मानों के अतिरिक्त, विभिन्न मेटा-जानकारी भी लौटा सकता है जिसमें मान के पथ या पॉइंटर, साथ ही पैरेंट ऑब्जेक्ट और पैरेंट प्रॉपर्टी नाम शामिल हैं (संशोधन की अनुमति देने के लिए)।
- पथ, सरणियों और पॉइंटर्स के बीच रूपांतरण के लिए उपयोगिताएँ
- मूल विनिर्देश में अनुमत मूल्यांकन को रोकने का विकल्प या मूल्यांकित मानों के लिए सैंडबॉक्स प्रदान करने का विकल्प।
- प्राप्त होते ही परिणामों को संभालने के लिए कॉलबैक का विकल्प।
बेंचमार्किंग
jsonpath-plus json-querying-performance-testing के अनुसार अन्य json क्वेरी लाइब्रेरीज़ की तुलना में बड़े और छोटे दोनों डेटासेट के साथ लगातार प्रभावशाली प्रदर्शन करता है। आप प्रोजेक्ट को स्वयं चलाकर और अधिक परफॉर्मेंस मामले जोड़कर इन निष्कर्षों को सत्यापित कर सकते हैं।
स्थापना```shell
npm install jsonpath-plus
## सेटअप
### Node.js```js
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
ब्राउज़र
ब्राउज़र उपयोग के लिए आप सीधे dist/index-browser-umd.cjs शामिल कर सकते हैं; कोई
Browserify जादू आवश्यक नहीं है:```html
### ESM (आधुनिक ब्राउज़र)
आप आधुनिक ब्राउज़रों के लिए ES6 मॉड्यूल imports का भी उपयोग कर सकते हैं:```html
<script type="module">
import {
JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';
const result = JSONPath({path: '...', json: {}});
</script>
ESM (Bundlers)
या यदि आप अपने JavaScript को बंडल कर रहे हैं (जैसे, Rollup के साथ), तो बस उपयोग करें,
यह ध्यान रखते हुए कि mainFields
को ब्राउज़र बिल्ड के लिए browser शामिल करना चाहिए (Node के लिए, डिफ़ॉल्ट, जो
module की जाँच करता है, ठीक होना चाहिए):```js
import {JSONPath} from 'jsonpath-plus';
const result = JSONPath({path: '...', json});
## उपयोग
पूर्ण हस्ताक्षर उपलब्ध है:```
const result = JSONPath([options,] path, json, callback, otherTypeCallback);
The arguments path, json, callback, और otherTypeCallback
को वैकल्पिक रूप से (उपलब्ध अन्य किसी भी गुण के साथ) options पर
व्यक्त किया जा सकता है।
ध्यान दें कि result में मिली सभी वस्तुएँ होंगी (वैकल्पिक रूप से
एक सरणी में लपेटी गई) जबकि callback का उपयोग तब किया जा सकता है यदि आप
प्रत्येक वस्तु की खोज होने पर कोई कार्य करना चाहते हैं, जिसमें
callback फ़ंक्शन को परिणाम में मिलने वाली स्वतंत्र वस्तुओं की संख्या के
आधार पर 0 से N बार निष्पादित किया जाता है।
JSONPath के उपलब्ध तर्कों के बारे में अधिक जानकारी के लिए नीचे दिए गए दस्तावेज़ देखें।
API दस्तावेज़ भी देखें।
गुण (Properties)
options ऑब्जेक्ट या evaluate विधि (पहले तर्क के रूप में) पर आपूर्ति किए जा सकने वाले गुणों में शामिल हैं: