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。
- 数字会被解析为整数,如果包含小数点或指数,则会被解析为浮点数。虽然 JSON 没有非有限值的语法,但非常大的值可能会被解码为无穷大。
- JSON 对象会被解析为新的未冻结的 Starlark 字典。如果同一键字符串在对象中出现多次,则保留该键的最后一个值。
- JSON 数组解析为新的未冻结 Starlark 列表。
如果
x 不是有效的 JSON 编码,并且指定了可选的
default 参数(包括指定为
None),则此函数会返回
default 值。
如果
x 不是有效的 JSON 编码,并且未指定可选的
default 参数,则此函数会失败。
参数
| 参数 |
说明 |
x
|
string;
必需
要解码的 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'
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-04-22。
[null,null,["最后更新时间 (UTC):2026-04-22。"],[],[]]