Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
JSONPath — JSONPath का एक फोर्क, http://goessner.net/articles/JsonPath/ से | Kitploit
उपकरण/GitHubGitHub/jsonpath-plus/jsonpath
सामान्य उपयोगिताएँस्थैतिक विश्लेषणकोड विश्लेषणस्क्रिप्टिंग और स्वचालनउपयोगिताएँ और फ्रेमवर्क
GitHubjsonpath-plus/jsonpath

JSONPath

JSONPath का एक फोर्क, http://goessner.net/articles/JsonPath/ से

रिपॉजिटरी देखें
1.2k2003 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

npm

testing badge coverage badge

Known Vulnerabilities

Licenses badge

Node.js CI status

(यह भी देखें डेवलपमेंट निर्भरताओं के लाइसेंस)

JSONPath Plus

JSON दस्तावेज़ों (और JavaScript ऑब्जेक्ट्स) से डेटा का विश्लेषण, रूपांतरण और चयनात्मक निष्कर्षण करें।

jsonpath-plus मूल विनिर्देश का विस्तार करते हुए कुछ अतिरिक्त ऑपरेटर जोड़ता है और कुछ व्यवहारों को स्पष्ट करता है जिन्हें मूल विनिर्देश ने स्पष्ट नहीं किया था।

ब्राउज़र डेमो या Runkit (Node) आज़माएँ।

कृपया ध्यान दें: यह प्रोजेक्ट वर्तमान में सक्रिय रूप से अनुरक्षित नहीं है। हम अच्छी तरह से प्रलेखित PR या कुछ सरल अपडेट स्वीकार कर सकते हैं, लेकिन हम स्वयं सुधार करने या नई सुविधाएँ जोड़ने के लिए तत्पर नहीं हैं।

विशेषताएं

  • मूल jsonpath विनिर्देश के अनुरूप
  • मूल विनिर्देश में उपलब्ध नहीं होने वाली सुविधाजनक अतिरिक्तताएँ या विस्तार:
    • मिलान वाली वस्तु का पैरेंट प्राप्त करने के लिए ^
    • मिलान वाली वस्तुओं के प्रॉपर्टी नाम (सरणी के रूप में) प्राप्त करने के लिए ~
    • निम्नलिखित प्राप्त करने के लिए टाइप सेलेक्टर:
      • मूल JSON प्रकार: @null(), @boolean(), @number(), @string(), @array(), @object()
      • @integer()
      • संयुक्त प्रकार @scalar() (जो JavaScript ऑब्जेक्ट्स पर क्वेरी करते समय undefined और गैर-परिमित संख्याओं के साथ-साथ सभी मूल गैर-ऑब्जेक्ट/गैर-फ़ंक्शन प्रकारों को भी स्वीकार करता है)
      • @other() जो उपयोगकर्ता-परिभाषित के साथ संयोजन में उपयोग योग्य है

बेंचमार्किंग

jsonpath-plus json-querying-performance-testing के अनुसार अन्य json क्वेरी लाइब्रेरीज़ की तुलना में बड़े और छोटे दोनों डेटासेट के साथ लगातार प्रभावशाली प्रदर्शन करता है। आप प्रोजेक्ट को स्वयं चलाकर और अधिक परफॉर्मेंस मामले जोड़कर इन निष्कर्षों को सत्यापित कर सकते हैं।

स्थापना```shell

npm install jsonpath-plus

root@kitploit:~
## सेटअप

### Node.js```js
const {JSONPath} = require('jsonpath-plus');

const result = JSONPath({path: '...', json});

ब्राउज़र

ब्राउज़र उपयोग के लिए आप सीधे dist/index-browser-umd.cjs शामिल कर सकते हैं; कोई Browserify जादू आवश्यक नहीं है:```html

root@kitploit:~
### 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});

root@kitploit:~
## उपयोग

पूर्ण हस्ताक्षर उपलब्ध है:```
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 विधि (पहले तर्क के रूप में) पर आपूर्ति किए जा सकने वाले गुणों में शामिल हैं:

  • path (आवश्यक) - (सामान्यीकृत या गैर-सामान्यीकृत) स्ट्रिंग या सरणी के रूप में JSONPath एक्सप्रेशन
  • json (आवश्यक) - मूल्यांकन करने के लिए JSON ऑब्जेक्ट (चाहे null, boolean, number, string, object, या array प्रकार का हो)।
  • autostart (डिफ़ॉल्ट: true) - यदि इसे false के रूप में आपूर्ति की जाती है, तो कोई व्यक्ति evaluate विधि को मैन्युअल रूप से कॉल कर सकता है।
  • flatten (डिफ़ॉल्ट: false) - क्या परिणामों की लौटाई गई सरणी को एकल-आयामी सरणी में समतल (flatten) किया जाएगा।
  • resultType (डिफ़ॉल्ट: "value") - यह "value", "path", "pointer", "parent", या "parentProperty" का केस-असंवेदनशील रूप हो सकता है, जो क्रमशः यह निर्धारित करता है कि परिणाम मिली वस्तुओं के मानों के रूप में लौटाए जाएँ, उनके निरपेक्ष पथों के रूप में, निरपेक्ष पथों के JSON Pointers के रूप में, उनके मूल ऑब्जेक्ट के रूप में, या उनके मूल की property नाम के रूप में। यदि इसे "all" पर सेट किया जाता है, तो ये सभी प्रकार एक ऑब्जेक्ट पर type के key नाम के साथ लौटाए जाएँगे।
  • sandbox (डिफ़ॉल्ट: {}) - चरों का key-value मानचित्र जो फ़िल्टरिंग एक्सप्रेशन जैसे कोड मूल्यांकनों के लिए उपलब्ध हो। (ध्यान दें कि वर्तमान path और value भी उन एक्सप्रेशनों के लिए उपलब्ध होंगे; विवरण के लिए Syntax अनुभाग देखें।)
  • wrap (डिफ़ॉल्ट: true) - परिणामों को किसी सरणी में लपेटना है या नहीं। यदि wrap को false पर सेट किया जाता है और कोई परिणाम नहीं मिलता है, तो undefined लौटाया जाएगा (जब wrap को true पर सेट किया जाता है तो खाली सरणी के विपरीत)। यदि को पर सेट किया जाता है और एक एकल गैर-सरणी परिणाम मिलता है, तो वह परिणाम ही लौटाया जाने वाला एकमात्र item होगा (किसी सरणी के भीतर नहीं)। हालाँकि, यदि कई परिणाम मिलते हैं तो एक सरणी अभी भी लौटाई जाएगी। अस्पष्टताओं से बचने के लिए (ऐसे मामले में जहाँ किसी विफलता वाले परिणाम और खाली सरणी वाले परिणाम के बीच अंतर करना आवश्यक हो), डिफ़ॉल्ट को पर स्विच करने की अनुशंसा की जाती है।

इंस्टेंस विधियाँ (Instance methods)

  • evaluate(path, json, callback, otherTypeCallback) या evaluate({path: <path>, json: <json object>, callback: <callback function>, otherTypeCallback: <otherTypeCallback function>}) - यह विधि केवल तभी आवश्यक है जब autostart गुण false पर सेट हो। इसका उपयोग समान कॉन्फ़िगरेशन का उपयोग करके बार-बार मूल्यांकन के लिए किया जा सकता है। सूचीबद्ध गुणों के अलावा, बाद वाला विधि पैटर्न अन्य अनुमत इंस्टेंस गुणों में से किसी को भी स्वीकार कर सकता है (सिवाय autostart के जिसका यहाँ कोई प्रासंगिकता नहीं होगी)।

क्लास गुण और विधियाँ (Class properties and methods)

  • JSONPath.clearCache() - आंतरिक रूप से कैश की गई पार्स की गई पथों और संकलित स्क्रिप्टों को साफ़ करता है। कैश सामग्री उजागर नहीं की जाती है; जब कैश अमान्यकरण की आवश्यकता हो तो इस विधि को कॉल करें।
  • JSONPath.toPathArray(pathAsString) - एक सामान्यीकृत या गैर-सामान्यीकृत path को स्ट्रिंग के रूप में स्वीकार करता है और सरणी में परिवर्तित करता है: उदाहरण के लिए, ['$', 'aProperty', 'anotherProperty']।
  • JSONPath.toPathString(pathAsArray) - एक path सरणी स्वीकार करता है और एक सामान्यीकृत path स्ट्रिंग में परिवर्तित करता है। स्ट्रिंग इस रूप में होगी: $['aProperty']['anotherProperty][0]. JSONPath टर्मिनल निर्माण ~ और ^ और @string() जैसे प्रकार ऑपरेटरों को मौन रूप से हटा दिया जाता है।
  • JSONPath.toPointer(pathAsArray) - एक path सरणी स्वीकार करता है और JSON Pointer में परिवर्तित करता है। स्ट्रिंग इस रूप में होगी: /aProperty/anotherProperty/0 (किसी भी ~ और / आंतरिक वर्णों को JSON Pointer विनिर्देश के अनुसार एस्केप किया गया)। JSONPath टर्मिनल निर्माण ~ और ^ और जैसे प्रकार ऑपरेटरों को मौन रूप से हटा दिया जाता है।

उदाहरणों के माध्यम से सिंटैक्स (Syntax through examples)

निम्नलिखित JSON दिया गया है, जो http://goessner.net/articles/JsonPath/ से लिया गया है:```json { "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } }

root@kitploit:~
और निम्नलिखित XML निरूपण:```xml
<store>
    <book>
        <category>reference</category>
        <author>Nigel Rees</author>
        <title>Sayings of the Century</title>
        <price>8.95</price>
    </book>
    <book>
        <category>fiction</category>
        <author>Evelyn Waugh</author>
        <title>Sword of Honour</title>
        <price>12.99</price>
    </book>
    <book>
        <category>fiction</category>
        <author>Herman Melville</author>
        <title>Moby Dick</title>
        <isbn>0-553-21311-3</isbn>
        <price>8.99</price>
    </book>
    <book>
        <category>fiction</category>
        <author>J. R. R. Tolkien</author>
        <title>The Lord of the Rings</title>
        <isbn>0-395-19395-8</isbn>
        <price>22.99</price>
    </book>
    <bicycle>
        <color>red</color>
        <price>19.95</price>
    </bicycle>
</store>

कृपया ध्यान दें कि नीचे दिए गए XPath उदाहरण एलिमेंट्स को पुनः प्राप्त करने और उनकी टेक्स्ट सामग्री के बीच अंतर नहीं करते हैं (तुलना के लिए या अस्पष्टता रोकने के लिए उपयोगी होने को छोड़कर)। नोट: XPath उदाहरणों का परीक्षण करने के लिए (2.0 वाले सहित), यह डेमो सहायक हो सकता है (इसे xml या xml-strict पर सेट करें)।| XPath | JSONPath | परिणाम | टिप्पणियाँ | |-------------------------------------------------------------------------------------|---------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | /store/book/author | $.store.book[*].author | स्टोर में सभी पुस्तकों के लेखक | इसे के बिना भी के रूप में दर्शाया जा सकता है (हालाँकि यह मूल स्पेक में मौजूद नहीं है); ध्यान दें कि कुछ वर्ण लिटरल ( और ) को एस्केप करने की आवश्यकता होती है | | | | सभी लेखक | | | | | स्टोर में मौजूद सभी चीज़ें, जो इसकी पुस्तकें (एक पुस्तक ऐरे) और एक लाल साइकिल (एक साइकिल ऑब्जेक्ट) हैं। | | | | | स्टोर में मौजूद हर चीज़ की कीमत। | | | | | तीसरी पुस्तक (पुस्तक ऑब्जेक्ट) | | | | | क्रम में अंतिम पुस्तक। | विशेष वर्ण वाली प्रॉपर्टी तक पहुँचने के लिए, फ़िल्टर हेतु का उपयोग करें (यह विशेष सुविधा मूल स्पेक में मौजूद नहीं है) | | | | पहली दो पुस्तकें | | | या XPath 2.0 में | | सभी पुस्तकों की श्रेणियाँ और लेखक | | | | | ISBN संख्या वाली सभी पुस्तकों को फ़िल्टर करें | विशेष वर्ण वाली प्रॉपर्टी तक पहुँचने के लिए, फ़िल्टर हेतु का उपयोग करें (यह विशेष सुविधा मूल स्पेक में मौजूद नहीं है) | | | | 10 से सस्ती सभी पुस्तकों को फ़िल्टर करें | | | | | उन ऑब्जेक्ट्स के सभी प्रॉपर्टी मान प्राप्त करें जिनकी प्रॉपर्टी price है और जो 8.95 के बराबर नहीं है | बेयर के साथ ऑब्जेक्ट्स को प्रॉपर्टी मान द्वारा फ़िल्टर करने की अनुमति मिलती है (जरूरी नहीं कि ऐरे के भीतर), आप फ़िल्टर की गई प्रॉपर्टीज़ वाले ऑब्जेक्ट को प्राप्त करने के लिए एक्सप्रेशन के बाद जोड़ सकते हैं | | | | JSON ऑब्जेक्ट का रूट (यानी, संपूर्ण ऑब्जेक्ट स्वयं) | लिटरल प्राप्त करने के लिए (अकेले या पाथ में कहीं भी), आपको बैकटिक एस्केप का उपयोग करना होगा | | | | XML दस्तावेज़ में रूट के नीचे के सभी एलिमेंट्स (और टेक्स्ट)। रूट के नीचे JSON संरचना के सभी सदस्य। | | | | | XML दस्तावेज़ में सभी एलिमेंट्स। रूट सहित JSON संरचना के सभी पैरेंट घटक। | यह व्यवहार मूल स्पेक में सीधे निर्दिष्ट नहीं किया गया था | | | | उन विशिष्ट आइटम्स का पैरेंट जिनकी कीमत 19 से अधिक है (यानी, साइकिल के पैरेंट के रूप में स्टोर मान और एक व्यक्तिगत पुस्तक के पैरेंट के रूप में पुस्तक ऐरे) | पैरेंट (केरेट) मूल स्पेक में मौजूद नहीं है | | (XPath 2.0 में) | | स्टोर सब-ऑब्जेक्ट के प्रॉपर्टी नाम ("book" और "bicycle")। वाइल्डकार्ड प्रॉपर्टीज़ के साथ उपयोगी। | प्रॉपर्टी नाम (टिल्ड) मूल स्पेक में मौजूद नहीं है | | (XPath 2.0 में) | | पहली पुस्तक की ओर इशारा करने वाले पाथ पर स्थित पुस्तक के अलावा अन्य सभी पुस्तकें | मूल स्पेक में मौजूद नहीं है | | | | उन पुस्तकों की सभी श्रेणियाँ प्राप्त करता है जहाँ पुस्तक के पैरेंट ऑब्जेक्ट में साइकिल चाइल्ड है जिसका रंग लाल है (यानी, सभी पुस्तकें) | मूल स्पेक में मौजूद नहीं है | | | | "book" के सभी चाइल्ड्स को प्राप्त करता है, सिवाय "category" वाले | मूल स्पेक में मौजूद नहीं है | | | | उन सभी पुस्तकों को प्राप्त करता है जिनकी प्रॉपर्टी (जो, चूँकि हम ऐरे के भीतर पहुँच रहे हैं, संख्यात्मक इंडेक्स है) 0 नहीं है | मूल स्पेक में मौजूद नहीं है | | | | स्टोर के उन ग्रैंडचाइल्ड्स को प्राप्त करता है जिनकी पैरेंट प्रॉपर्टी book नहीं है (यानी, साइकिल के चाइल्ड्स, "color" और "price") | मूल स्पेक में मौजूद नहीं है | | | | सभी पुस्तक इंस्टेंस के प्रॉपर्टी मान प्राप्त करें, जहाँ इन मानों की पैरेंट प्रॉपर्टी (यानी, पुस्तक आइटम पैरेंट ऑब्जेक्ट को धारण करने वाला ऐरे इंडेक्स) 0 नहीं है | मूल स्पेक में मौजूद नहीं है | | | | उन सभी पुस्तकों को फ़िल्टर करें जिनकी कीमत तीसरी पुस्तक की कीमत के बराबर है | मूल स्पेक में मौजूद नहीं है | | (XPath 2.0 में) | | पुस्तक ऐरे के भीतर संख्यात्मक मान प्राप्त करें | , अन्य बुनियादी प्रकार (, ), अन्य निम्न-स्तरीय व्युत्पन्न प्रकार (, , ), JSONSchema-जोड़ा गया प्रकार , यौगिक प्रकार (जो JavaScript ऑब्जेक्ट्स के लिए और गैर-परिमित संख्याओं के साथ-साथ सभी बुनियादी गैर-ऑब्जेक्ट/गैर-फंक्शन प्रकारों को भी स्वीकार करता है), प्रकार , जिसका उपयोग उपयोगकर्ता-परिभाषित कॉलबैक के साथ किया जाता है (देखें ), और निम्नलिखित गैर-JSON प्रकार जिनका उपयोग गैर-JSON JavaScript ऑब्जेक्ट्स को क्वेरी करते समय JSONPath के साथ किया जा सकता है (, , ) मूल स्पेक में मौजूद नहीं हैं | | (XPath 2.0) | | पुस्तकों की वे सभी श्रेणियाँ जो रेगेक्स से मेल खाती हैं ('TION' पर समाप्त होती हैं, केस-इनसेंसिटिव) | मूल स्पेक में मौजूद नहीं है। | | (XPath 2.0) | | वे सभी पुस्तकें जिनमें रेगेक्स से मेल खाने वाली प्रॉपर्टी है ('TION' पर समाप्त होती है, केस-इनसेंसिटिव) | मूल स्पेक में मौजूद नहीं है। नोट: पैरेंट ऑब्जेक्ट पर लौटने के लिए एक्सप्रेशन के अंत में पैरेंट सेलेक्टर का उपयोग करता है; पैरेंट सेलेक्टर के बिना, यह दो कुंजी मानों से मेल खाता है। | | | (जैसे, का प्रयोग नामक प्रॉपर्टी का शाब्दिक मिलान करने के लिए करें) | बाद के संपूर्ण अनुक्रम को एस्केप करता है (लिटरल के रूप में माने जाने के लिए) | मूल स्पेक में मौजूद नहीं है; लिटरल बैकटिक प्राप्त करने के लिए, एस्केप करने हेतु एक अतिरिक्त बैकटिक का उपयोग करें |Any additional variables supplied as properties on the optional "sandbox" object option are also available to (parenthetical-based) evaluations.

XPath उपयोगकर्ताओं के लिए भ्रम के संभावित स्रोत

  1. JSONPath में, एक फ़िल्टर एक्सप्रेशन, अपने @ के बच्चों (children) के संदर्भ में होने के अलावा, वास्तव में तत्काल बच्चों का चयन भी करता है, जबकि XPath में, फ़िल्टर शर्तें बच्चों का चयन नहीं करतीं बल्कि यह निर्धारित करती हैं कि परिणाम में उसके पैरेंट नोड्स में से कौन से प्राप्त होंगे।
  2. JSONPath में, ऐरे इंडेक्स, जैसे JavaScript में, 0-आधारित होते हैं (वे 0 से शुरू होते हैं), जबकि XPath में, वे 1-आधारित होते हैं।
  3. JSONPath में, समानता परीक्षण (जैसा JavaScript में) एक से अधिक बराबर चिह्नों का उपयोग करते हैं, जबकि XPath में, वे एकल बराबर चिह्न का उपयोग करते हैं।

कमांड लाइन इंटरफ़ेस

एक बुनियादी कमांड लाइन इंटरफ़ेस (CLI) प्रदान किया गया है। इसे npx jsonpath-plus <json-file> <jsonpath-query> का उपयोग करके एक्सेस करें।

विचार

  1. फ़िल्टर के बाहर OR का समर्थन करें (जैसे XPath |) और समूहीकरण।
  2. ऐसी सिंटैक्स बनाएं जो XPath फ़िल्टर की तरह बच्चों का चयन न करे?
  3. parentNode समकक्ष के लिए विकल्प की अनुमति दें (पैरेंट-और-parentProperty ऑब्जेक्ट्स की पूरी श्रृंखला को root तक बनाए रखते हुए)

विकास

Node पर परीक्षण चलाना:```shell npm test

root@kitploit:~
ब्राउज़र में परीक्षणों के लिए:

- js/html फ़ाइलों को सर्व करें:```shell
npm run browser-test
  • http://localhost:8082/test/ पर जाएँ।

सुरक्षा

कृपया महत्वपूर्ण सुरक्षा विचारों और भेद्यताओं की रिपोर्ट करने के निर्देशों के लिए SECURITY.md देखें।

लाइसेंस

MIT License।

टूल डाउनलोड करें
otherTypeCallback
  • गैर-JSON प्रकार जो फिर भी गैर-JSON JavaScript ऑब्जेक्ट्स पर क्वेरी करते समय उपयोग किए जा सकते हैं (@undefined(), @function(), @nonFinite())
  • फ़िल्टर के भीतर @path/@parent/@property/@parentProperty/@root शॉर्टहैंड सेलेक्टर
  • एस्केपिंग
    • शेष अनुक्रम को एस्केप करने के लिए `
    • फ़िल्टर में प्रॉपर्टी नामों के भीतर विशेष वर्णों को एस्केप करने के लिए @['...']/?@['...'] सिंटैक्स
  • $.. दस्तावेज़ (सभी पैरेंट घटक प्राप्त करना)
  • ESM और UMD निर्यात प्रारूप
  • क्वेरी किए गए मानों के अतिरिक्त, विभिन्न मेटा-जानकारी भी लौटा सकता है जिसमें मान के पथ या पॉइंटर, साथ ही पैरेंट ऑब्जेक्ट और पैरेंट प्रॉपर्टी नाम शामिल हैं (संशोधन की अनुमति देने के लिए)।
  • पथ, सरणियों और पॉइंटर्स के बीच रूपांतरण के लिए उपयोगिताएँ
  • मूल विनिर्देश में अनुमत मूल्यांकन को रोकने का विकल्प या मूल्यांकित मानों के लिए सैंडबॉक्स प्रदान करने का विकल्प।
  • प्राप्त होते ही परिणामों को संभालने के लिए कॉलबैक का विकल्प।
  • wrap
    false
    false
  • eval (डिफ़ॉल्ट: "safe") - स्क्रिप्ट मूल्यांकन विधि। safe: ब्राउज़र में, यह एक न्यूनतम स्क्रिप्टिंग इंजन का उपयोग करेगा जो eval या Function का उपयोग नहीं करता है और Content Security Policy को संतुष्ट करता है। NodeJS में, इसका कोई प्रभाव नहीं होता है और यह native के समतुल्य है क्योंकि वहाँ स्क्रिप्टिंग सुरक्षित है। native: देशी स्क्रिप्टिंग क्षमताओं का उपयोग करता है। अर्थात् ब्राउज़र में असुरक्षित eval या Function और nodejs में vm.Script। false: JavaScript मूल्यांकन एक्सप्रेशनों को अक्षम करें और इन एक्सप्रेशनों के प्रयास किए जाने पर अपवाद (exceptions) फेंकें। callback [ (code, context) => value]: एक कस्टम कार्यान्वयन जिसे मूल्यांकित मान लौटाने के लिए तर्कों के रूप में code और context के साथ कॉल किया जाता है। class: एक क्लास जो code को कंस्ट्रक्टर तर्क के रूप में बनाई जाती है और context के साथ runInNewContext को कॉल करके कोड का मूल्यांकन किया जाता है। ``
  • ignoreEvalErrors (डिफ़ॉल्ट: false) - स्क्रिप्ट मूल्यांकन के दौरान आने वाली त्रुटियों को अनदेखा करें।
  • parent (डिफ़ॉल्ट: null) - ऐसी स्थिति में जब कोई क्वेरी रूट नोड लौटा सकती है, यह उस रूट नोड के parent को परिणामों में लौटाने की अनुमति देता है।
  • parentProperty (डिफ़ॉल्ट: null) - ऐसी स्थिति में जब कोई क्वेरी रूट नोड लौटा सकती है, यह उस रूट नोड के parentProperty को परिणामों में लौटाने की अनुमति देता है। यह एक स्ट्रिंग property नाम या संख्यात्मक सरणी अनुक्रमणिका हो सकता है।
  • callback (डिफ़ॉल्ट: (कोई नहीं)) - यदि आपूर्ति की जाती है, तो एक callback को अंतिम बिंदु मान की प्राप्ति पर तुरंत कॉल किया जाएगा। आपूर्ति किए गए तीन तर्क होंगे: payload का मान (resultType के अनुसार), payload का प्रकार (चाहे वह सामान्य "value" हो या "property" नाम), और एक पूर्ण payload ऑब्जेक्ट (सभी resultTypes के साथ)।
  • otherTypeCallback (डिफ़ॉल्ट: <ऐसा फ़ंक्शन जो @other() का सामना होने पर त्रुटि फेंकता है>) - JSON Schema समर्थन की वर्तमान अनुपस्थिति में, कोई व्यक्ति अपनी क्वेरी के अंत में @other() ऑपरेटर जोड़कर अंतर्निहित प्रकारों से परे प्रकार निर्धारित कर सकता है। यदि ऐसा कोई path सामने आता है, तो otherTypeCallback को item के मान, उसके path, उसके parent, और उसके parent की property नाम के साथ लागू किया जाएगा, और इसे एक boolean लौटाना चाहिए जो दर्शाता है कि आपूर्ति किया गया मान "other" प्रकार का है या नहीं (या यह परिवर्तनों को संभाल सकता है और false लौटा सकता है)।
  • @string()
    $.
    store.book[*].author
    $
    @
    //author
    $..author
    /store/*
    $.store.*
    /store//price
    $.store..price
    //book[3]
    $..book[2]
    //book[last()]
    $..book[(@.length-1)]

    $..book[-1:]
    [(@['...'])]
    //book[position()<3]
    $..book[0,1]

    $..book[:2]
    //book/*[self::category\|self::author]
    //book/(category,author)
    $..book[0][category,author]
    //book[isbn]
    $..book[?(@.isbn)]
    [?@['...']]
    //book[price<10]
    $..book[?(@.price<10)]
    //*[name() = 'price' and . != 8.95]
    $..*[?(@property === 'price' && @ !== 8.95)]
    @
    ^
    /
    $
    $
    //*/*\|//*/*/text()
    $..*
    //*
    $..
    //*[price>19]/..
    $..[?(@.price>19)]^
    /store/*/name()
    $.store.*~
    /store/book[not(. is /store/book[1])]
    $.store.book[?(@path !== "$['store']['book'][0]")]
    @path
    //book[parent::*/bicycle/color = "red"]/category
    $..book[?(@parent.bicycle && @parent.bicycle.color === "red")].category
    @parent
    //book/*[name() != 'category']
    $..book.*[?(@property !== "category")]
    @property
    //book[position() != 1]
    $..book[?(@property !== 0)]
    @property
    /store/*/*[name(parent::*) != 'book']
    $.store.*[?(@parentProperty !== "book")]
    @parentProperty
    //book[count(preceding-sibling::*) != 0]/*/text()
    $..book.*[?(@parentProperty !== 0)]
    @parentProperty
    //book[price = /store/book[3]/price]
    $..book[?(@.price === @root.store.book[2].price)]
    @root
    //book/../*[. instance of element(*, xs:decimal)]
    $..book..*@number()
    @number()
    @boolean()
    @string()
    @null()
    @object()
    @array()
    @integer()
    @scalar()
    undefined
    @other()
    otherTypeCallback
    @undefined()
    @function()
    @nonFinite()
    //book/*[name() = 'category' and matches(., 'tion$')]
    $..book.*[?(@property === "category" && @.match(/TION$/i))]
    @property
    //book/*[matches(name(), 'bn$')]/parent::*
    $..book.*[?(@property.match(/bn$/i))]^
    @property
    ^
    isbn
    `
    `$
    $
    `