Module json 是 Starlark 模块,包含 JSON 相关函数。
成员
解码
unknown json.decode(x)
解码函数接受一个位置参数,即 JSON 字符串。它会返回字符串表示的 Starlark 值。
- “null”“true”和“false”会解析为 None、True 和 False。
- 数字会解析为整数;如果数字包含小数点或指数,则会解析为浮点数。尽管 JSON 没有适用于非有限值的语法,但非常大的值可能会被解码为无穷大。
- 一个 JSON 对象被解析为一个新的未冻结 Starlark 字典。如果同一个键字符串在对象中多次出现,系统会保留该键的最后一个值。
- 一个 JSON 数组会被解析为新的未冻结 Starlark 列表。
如果 x 不是有效的 JSON 编码,则解码失败。
参数
encode
string json.encode(x)
编码函数接受一个必需的位置参数,并可根据情况将其转换为 JSON:
- None、True 和 False 分别转换为“null”“true”和“false”。
- 整数(无论大小如何)会编码为十进制整数。某些解码器可能无法解码非常大的整数。
- 浮点数使用小数点和/或指数进行编码,即使其数值是整数也是如此。对非有限浮点值进行编码会出错。
- 字符串值编码为表示值的 JSON 字符串字面量。每个未配对的代理都会替换为 U+FFFD。
- 字典按键顺序编码为 JSON 对象。如果任何键不是字符串,则会出错。
- 列表或元组编码为 JSON 数组。
- 结构体值会按照字段名称顺序编码为 JSON 对象。
应用定义的类型可以定义自己的 JSON 编码。
对任何其他值进行编码都会引发错误。
参数
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')
编码_缩进函数等同于
json.indent(json.encode(x), ...)
。有关格式设置参数的说明,请参阅
indent
。
参数
参数 |
说明 |
x
|
必需
|
prefix
|
default = ''
|
indent
|
默认值 = '\t'
|
缩进
string json.indent(s, *, prefix='', indent='\t')
缩进函数会返回有效 JSON 编码字符串的缩进形式。
每个数组元素或对象字段都另起一行,以前缀字符串开头,后跟缩进字符串的一个或多个副本(根据其嵌套深度)。
该函数接受一个必需的位置参数、JSON 字符串,以及两个可选(仅包含关键字)的字符串参数(前缀和缩进),用于指定每个新行的前缀和缩进单位。如果输入无效,函数可能会失败或返回无效输出。
参数
参数 |
说明 |
s
|
必需
|
prefix
|
default = ''
|
indent
|
默认值 = '\t'
|