JSON Toolkit

JSONPath या JSON Pointer

मुख्य बात: JSON Pointer एक अद्वितीय पता है जिसे key के रूप में संग्रहीत किया जा सकता है; JSONPath एक query भाषा है। गलत वाला चुनने से कॉन्फ़िग अपडेट टूट जाते हैं या टूटा हुआ JSONPath दोबारा बनाना पड़ता है।

मध्यम~4 मिनट पढ़ें2026-10-30 को प्रकाशित2026-10-30 को अपडेट किया गया
JSONPath कहाँ ख़त्म होता है और JSON Pointer कहाँ शुरू

मुख्य बात: जब आपको एक नोड का पता पढ़ना, लिखना या संग्रहीत करना हो (जैसे /server/cors/0) तो JSON Pointer उपयोग करें, और जब शर्त के आधार पर नोड्स का समूह चुनना हो तो JSONPath; जो भी path स्थायी रूप से सहेजा जाए वह Pointer होना चाहिए, कभी expression नहीं।

अपने आप से पूछें कि आपको एक नोड चाहिए या उनका समूह।

एक तालिका में

JSON Pointer JSONPath
प्रकृति अद्वितीय पता Query expression
सिंटैक्स /a/b/0 $.a.b[0], $..price
परिणाम ठीक एक नोड, या कुछ नहीं शून्य या अधिक नोड्स
Key के रूप में संग्रहणीय हाँ, string ही पहचान है नहीं, कई से मेल खा सकता है
मानक RFC 6901 RFC 9535 (2024 में अंतिम)

JSON Pointer

/server/host        -> "127.0.0.1"
/server/cors/0      -> "https://a.com"
/                   -> पूरा document

जिन keys में / या ~ है वे escaped होते हैं: ~ के लिए ~0, / के लिए ~1। मूल्य है निश्चितता: पता एक string है, इसलिए यह डेटाबेस कॉलम, log पंक्ति या कॉन्फ़िग key में फ़िट हो जाता है। JSON Patch (RFC 6902) हर क्रिया को इसी तरह संबोधित करता है।

JSONPath

$.store.book[*].author
$..price
$.store.book[?(@.price < 10)]

SQL के WHERE के अधिक नज़दीक। वही expression डेटा के अनुसार शून्य, एक या सौ नोड्स लौटाता है।

दो विफलता के तरीके

JSONPath को कॉन्फ़िग key बनाना। $.server.port संग्रहीत करें और एक दिन संरचना array बन जाती है; expression अब कई ports से मेल खाता है और अपडेट तर्क के पास चुनने का कोई तरीका नहीं होता।

चयन के लिए Pointer उपयोग करना। "वे सारे नोड्स खोजें जिनका मूल्य 10 से कम है" pointer से असंभव है। खुद लूप लिखने का मतलब है आधा-अधूरा JSONPath बनाना।

असली सिस्टम काम कैसे बाँटते हैं

  • कॉन्फ़िग पढ़ना, फ़ील्ड अपडेट, patches: Pointer, स्थिर और auditable
  • डेटा खोज, थोक निष्कर्षण, रिपोर्टिंग: JSONPath, अभिव्यक्ति पहले
  • जो कुछ भी स्थायी रूप से सहेजा जाए: केवल Pointer, कभी expression नहीं

FAQ

JSON Pointer और JSONPath के बीच चुनाव कैसे करूँ?

पूछें कि आपको एक नोड चाहिए या समूह। एक विशिष्ट नोड पढ़ने या लिखने और उस पता को key के रूप में संग्रहीत करने के लिए JSON Pointer उपयोग करें, क्योंकि pointer अद्वितीय है, जैसे /server/cors/0। शर्त के आधार पर नोड्स चुनने के लिए JSONPath उपयोग करें, जैसे $.store.book[?(@.price < 10)]।

JSONPath expression को कॉन्फ़िग key क्यों नहीं बनाया जा सकता?

क्योंकि expression कई नोड्स से मेल खा सकता है। $.server.port संग्रहीत करें और एक दिन संरचना array बन जाती है; expression तब कई ports से मेल खाता है और अपडेट तर्क तय नहीं कर सकता कि किसे बदलना है। जो कुछ भी स्थायी रूप से सहेजा या audited जाए उसे Pointer चाहिए।

क्या JSON Pointer शर्त के आधार पर नोड्स filter कर सकता है?

नहीं। Pointer केवल एक निश्चित path पर चलता है और नहीं जान सकता कि कौन से नोड्स मौजूद हैं, इसलिए वे सारे नोड्स चुनना जिनका मूल्य 10 से कम है असंभव है। वह लूप खुद लिखने का मतलब है आधा-अधूरा JSONPath बनाना।

आगे पढ़ें

मेल खाते उपकरण

संबंधित लेख

व्यवहार में JSONPath क्वेरी भाषा

2024 में JSONPath को आखिरकार औपचारिक मानक RFC 9535 मिला। यह लेख सिंटैक्स, filter semantics, functions और implementations के ऐतिहासिक अंतर समझाता है।

मध्यम~12 मिनट पढ़ें2026-10-30 को अपडेट किया गया

JSON Pointer, Patch और Merge Patch

तीन छोटे विनिर्देश मिलकर एक change protocol बनाते हैं: Pointer locate करता है, Patch ठीक-ठीक edit करता है, Merge Patch आंशिक रूप से merge करता है। गलत चुनाव arrays और concurrency पर चोट पहुँचाता है।

मध्यम~12 मिनट पढ़ें2026-10-30 को अपडेट किया गया

टूल उपयोग FAQ: डेटा, फ़ाइलें और एक्सपोर्ट

क्या डेटा अपलोड होता है, कितनी बड़ी फ़ाइल काम करती है, क्या कुछ लोकल संग्रहीत होता है, चीनी escape में क्यों बदल जाता है: दस प्रश्न जो ऑनलाइन JSON टूल की असली सीमाएँ स्पष्ट करते हैं।

शुरुआती~10 मिनट पढ़ें2026-10-30 को अपडेट किया गया