JSON

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 8.0 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; required
prefix string; डिफ़ॉल्ट ''
है
indent string; डिफ़ॉल्ट '\t'
है