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