json

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

सदस्य

डिकोड करें

unknown json.decode(x, default=unbound)

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

पैरामीटर

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

कोड में बदलना

string json.encode(x)

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

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

इंडेंट

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

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

पैरामीटर

पैरामीटर ब्यौरा
s string; required
prefix string; डिफ़ॉल्ट तौर पर ''
होता है
indent string; डिफ़ॉल्ट तौर पर '\t'
होता है