json
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
模組 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 時傳回該值。 |
encode
string json.encode(x)
encode 函式接受一個必要的位置引數,並依據案例將其轉換為 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')
indent 函式會傳回有效 JSON 編碼字串的縮排形式。
每個陣列元素或物件欄位都會顯示在新的一行,開頭為前置字串,後面則會根據巢狀結構深度,加上一或多個縮排字串。
這個函式會接受一個必要的位置參數 (JSON 字串),以及兩個選用的僅限關鍵字字串參數 (prefix 和 indent),分別指定每個新行的前置字元和縮排單位。如果輸入無效,函式可能會失敗或傳回無效輸出。
參數
參數 |
說明 |
s
|
必要
|
prefix
|
預設值為 ''
|
indent
|
預設值為 '\t'
|
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-10-02 (世界標準時間)。
[null,null,["上次更新時間:2025-10-02 (世界標準時間)。"],[],[],null,[]]