模組 json 是 JSON 相關函式的 Starlark 模組。
成員
解碼
unknown json.decode(x)
解碼函式可接受一個位置參數,也就是 JSON 字串。
並傳回該字串代表的 Starlark 值。
- 「null」、「true」和「false」剖析為 None、True 和 False。
- 如果數字包含小數點或指數,則系統會將數字剖析為 int 或浮點值。雖然 JSON 沒有非有限值的語法,但很大程度的值可以解碼為無限大。
- JSON 物件會剖析為新的未凍結的 Starlark 字典。鍵不得重複。
- 系統會將 JSON 陣列剖析為新的未凍結的 Starlark 清單。
,瞭解如何調查及移除這項存取權。
如果 x 不是有效的 JSON 編碼,解碼作業就會失敗。
參數
encode
string json.encode(x)
編碼函式接受一個必要位置引數,在案例中,該引數會轉換為 JSON:
- None、True 和 False 分別轉換為「null」、「true」和「false」。
- 無論大小多大,都會編碼為十進位整數。有些解碼器可能無法解碼非常大的整數。
- 浮點數將使用小數點或指數進行編碼 (即使其數值為整數)。將非有限浮點值編碼時會發生錯誤。
- 字串值編碼為代表值的 JSON 字串常值。每個未配對的代理值都會由 U+FFFD 取代。
- 字典會編碼為 JSON 物件,按鍵順序。如果任何鍵不是字串,就會發生錯誤。
- 清單或元組會編碼為 JSON 陣列。
- 類似結構體的值會以欄位名稱順序編碼為 JSON 物件。
,瞭解如何調查及移除這項存取權。
應用程式定義的類型可能會定義專屬的 JSON 編碼。
將任何其他值編碼會產生錯誤。
參數
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')
縮排函式會傳回有效的 JSON 編碼字串縮排格式。
每個陣列元素或物件欄位都會逐行顯示,且視巢狀深度而定,開頭為前置字串字串,後面加上一或多個縮排字串的副本。
這個函式接受一個必要位置參數:JSON 字串,
以及兩個選用的關鍵字專用字串參數、前置字元和縮排
指定每一行的前置字元和縮排單位。
如果輸入內容無效,函式可能會失敗或傳回無效的輸出內容。
參數
參數 |
說明 |
s
|
必要
|
prefix
|
預設 = '
|
indent
|
預設 = '\t'
|