JSON

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

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

सदस्य

डिकोड करें

unknown json.decode(x, default=unbound)

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

पैरामीटर

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

कोड में बदलना

string json.encode(x)

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

  • कोई नहीं, सही, और गलत को क्रम से 'शून्य', 'सही', और 'गलत' में बदला जाता है.
  • कोई भी 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'
है