json

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

सदस्य

डिकोड करें

unknown json.decode(x, default=unbound)

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

पैरामीटर

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

कोड में बदलें

string json.encode(x)

encode फ़ंक्शन, एक ज़रूरी पोज़िशनल आर्ग्युमेंट स्वीकार करता है. इसे इन मामलों में JSON में बदला जाता है:

  • None, True, और False को क्रमशः 'null', 'true', और 'false' में बदला जाता है.
  • किसी int को, चाहे वह कितना भी बड़ा हो, डेसिमल इंटिजर के तौर पर एन्कोड किया जाता है. हो सकता है कि कुछ डिकोडर, बहुत बड़े इंटिजर को डिकोड न कर पाएं.
  • किसी फ़्लोट को डेसिमल पॉइंट, एक्स्पोनेंट या दोनों का इस्तेमाल करके एन्कोड किया जाता है. भले ही, उसकी न्यूमेरिक वैल्यू इंटिजर हो. नॉन-फ़ाइनाइट फ़्लोटिंग-पॉइंट वैल्यू को एन्कोड करना, एक गड़बड़ी है.
  • किसी स्ट्रिंग वैल्यू को, 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')

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

पैरामीटर

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