JSON

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

सदस्य

डिकोड करें

unknown json.decode(x, default=unbound)

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

पैरामीटर

पैरामीटर ब्यौरा
x string; ज़रूरी है
डिकोड करने के लिए 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 string; डिफ़ॉल्ट ''
है
indent string; डिफ़ॉल्ट '\t'
है

इंडेंट

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

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

पैरामीटर

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