Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
json
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
模块 json 是一个与 JSON 相关的 Starlark 模块。
成员
解码
unknown json.decode(x, default=unbound)
decode 函数有一个必需的位置参数: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)
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 编码的字符串的缩进形式。每个数组元素或对象字段都会显示在新的一行中,并以 prefix 字符串开头,后跟一个或多个 indent 字符串副本,具体取决于其嵌套深度。
该函数接受一个必需的位置参数(JSON 字符串)和两个可选的仅关键字字符串参数(prefix 和 indent),用于指定每个新行的前缀和缩进单位。
如果输入无效,该函数可能会失败或返回无效输出。
参数
| 参数 |
说明 |
s
|
必需
|
prefix
|
默认值为 ''
|
indent
|
默认值为 '\t'
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-04-22。
[null,null,["最后更新时间 (UTC):2026-04-22。"],[],[]]