如需穩定版說明文件,請使用「版本化文件」下拉式選單。預設檢視會反映位於 HEAD 的最新版本。
回報問題open_in_new
查看來源open_in_new
模組 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
|
必須
JSON 字串才能解碼。
|
default
|
預設值為 unbound
如有指定,則在 x 無法解碼時要傳回的值。 |
encode
string json.encode(x)
編碼函式接受一個必要位置引數,會在下列情況中轉換為 JSON:
- None、True 和 False 會分別轉換為「null」、「true」和「false」。
- 無論大小, int 都會編碼為十進位整數。部分解碼器可能無法解碼非常大的整數。
- 浮點數是利用小數點、指數或兩者進行編碼,即使其數值是整數。對非有限浮點值進行編碼會發生錯誤。
- 字串值會以 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'
|