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
|
必需
要解码的 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):2025-10-01。
[null,null,["最后更新时间 (UTC):2025-10-01。"],[],[],null,[]]