JSON

समस्या की शिकायत करें सोर्स देखें

मॉड्यूल json, JSON से जुड़े फ़ंक्शन का Starlark मॉड्यूल है.

पैसे चुकाकर बने सदस्य

डिकोड करें

unknown json.decode(x, default=unbound)

डिकोड करने वाले फ़ंक्शन में एक ज़रूरी पोज़िशन से जुड़ा पैरामीटर होता है: JSON स्ट्रिंग. यह Starlark की वह वैल्यू दिखाता है जिसके बारे में स्ट्रिंग बताती है.
  • "null", "true", और "false" को None, True, और False के तौर पर पार्स किया जाता है.
  • संख्याओं को पूर्णांक के रूप में या फ़्लोट के रूप में पार्स किया जाता है, अगर उनमें दशमलव बिंदु या घातांक होता है. JSON में नॉन-फ़ाइनाइट वैल्यू के लिए कोई सिंटैक्स नहीं होता, लेकिन बहुत बड़ी वैल्यू को इनफ़िनिटी के तौर पर डिकोड किया जा सकता है.
  • JSON ऑब्जेक्ट को नए स्टारलार्क डिक्शनरी के तौर पर पार्स किया जाता है. अगर ऑब्जेक्ट में एक ही कुंजी स्ट्रिंग एक से ज़्यादा बार आती है, तो कुंजी की आखिरी वैल्यू को ही रखा जाता है.
  • JSON अरे को बिना फ़्रीज़ किए गए Starlark की नई सूची के तौर पर पार्स किया जाता है.
अगर x, कोई मान्य JSON एन्कोडिंग नहीं है और वैकल्पिक default पैरामीटर (इसमें None भी बताया गया है) दिया गया है, तो यह फ़ंक्शन default वैल्यू दिखाता है. अगर x, JSON कोड में बदलने का मान्य तरीका नहीं है और वैकल्पिक default पैरामीटर नहीं दिया गया है, तो यह फ़ंक्शन काम नहीं करेगा.

पैरामीटर

पैरामीटर ब्यौरा
x
डिकोड करने के लिए JSON स्ट्रिंग ज़रूरी है.
default unbound डिफ़ॉल्ट पर सेट है
अगर बताया गया है, तो x को डिकोड नहीं किया जा सकता.

encode

string json.encode(x)

कोड में बदलने का फ़ंक्शन एक ज़रूरी पोज़िशन के तर्क को स्वीकार करता है, जो इसे केस के हिसाब से JSON में बदल देता है:

  • कोई नहीं, सही और गलत को क्रम से 'शून्य', 'सही', और 'गलत' में बदल दिया जाता है.
  • पूर्णांक, चाहे कितना भी बड़ा हो, उसे दशमलव पूर्णांक के तौर पर कोड में बदला जाता है. ऐसा हो सकता है कि कुछ डिकोडर, बहुत बड़े पूर्णांक को डिकोड न कर पाएं.
  • फ़्लोट को दशमलव बिंदु, घातांक या फिर दोनों का इस्तेमाल करके एन्कोड किया जाता है. भले ही, इसकी न्यूमेरिक वैल्यू एक पूर्णांक हो. नॉन-फ़ाइनाइट फ़्लोटिंग-पॉइंट वैल्यू को कोड में बदलने के दौरान हुई गड़बड़ी का पता चलता है.
  • स्ट्रिंग की वैल्यू को JSON स्ट्रिंग लिटरल के तौर पर एन्कोड किया जाता है. यह वैल्यू को दिखाता है. जुड़े हुए हर सरोगेट को U+FFFD से बदल दिया जाता है.
  • डिक्शनरी को JSON ऑब्जेक्ट के तौर पर, कुंजी के क्रम में एन्कोड किया जाता है. अगर कोई कुंजी कोई स्ट्रिंग नहीं है, तो यह गड़बड़ी होती है.
  • सूची या टपल को JSON फ़ॉर्मैट में एन्कोड किया जाता है.
  • स्ट्रक्चर की तरह दिखने वाली वैल्यू को फ़ील्ड के नाम के क्रम में, JSON ऑब्जेक्ट के तौर पर कोड में बदला गया है.
ऐप्लिकेशन का तय किया गया टाइप, अपनी JSON एन्कोडिंग को परिभाषित कर सकता है. किसी अन्य वैल्यू को कोड में बदलने से गड़बड़ी मिलती है.

पैरामीटर

पैरामीटर ब्यौरा
x ज़रूरी है

encode_indent

string json.encode_indent(x, *, prefix='', indent='\t')

encode_indent फ़ंक्शन, json.indent(json.encode(x), ...) के बराबर है. फ़ॉर्मैटिंग पैरामीटर की जानकारी के लिए, indent देखें.

पैरामीटर

पैरामीटर ब्यौरा
x ज़रूरी है
prefix डिफ़ॉल्ट वैल्यू ''
है
indent डिफ़ॉल्ट वैल्यू '\t'
है

इंडेंट

string json.indent(s, *, prefix='', indent='\t')

इंडेंट फ़ंक्शन, JSON से कोड में बदली गई मान्य स्ट्रिंग का इंडेंट किया गया फ़ॉर्म दिखाता है. हर ऐरे एलिमेंट या ऑब्जेक्ट फ़ील्ड एक नई लाइन में दिखता है, जिसकी शुरुआत प्रीफ़िक्स स्ट्रिंग से होती है. इसके बाद, नेस्टिंग डेप्थ के हिसाब से इंडेंट स्ट्रिंग की एक या उससे ज़्यादा कॉपी दिखती हैं. फ़ंक्शन, पोज़िशन के हिसाब से एक ज़रूरी पैरामीटर, JSON स्ट्रिंग, और सिर्फ़ कीवर्ड वाले दो स्ट्रिंग पैरामीटर, प्रीफ़िक्स और इंडेंट स्वीकार करता है. ये पैरामीटर हर नई लाइन का प्रीफ़िक्स और इंडेंटेशन की इकाई बताते हैं. अगर इनपुट मान्य नहीं है, तो फ़ंक्शन काम नहीं कर सकता या अमान्य आउटपुट दे सकता है.

पैरामीटर

पैरामीटर ब्यौरा
s ज़रूरी है
prefix डिफ़ॉल्ट वैल्यू ''
है
indent डिफ़ॉल्ट वैल्यू '\t'
है