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 में बदला जाता है:

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

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

पैरामीटर

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