json

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
模块 json 是 JSON 相关函数的 Starlark 模块。

会员

解码

unknown json.decode(x)

解码函数接受一个位置参数,即 JSON 字符串。它会返回该字符串表示的 Starlark 值。
  • 'null'true' 和 'false' 解析为 None、True 和 False。
  • 如果数字包含小数点或指数,则解析为整数或浮点数。虽然 JSON 没有适用于非有限值的语法,但非常大的值可能会解码为无穷大的值。
  • 系统会将一个 JSON 对象解析为新的未冻结 Starlark 字典。键必须是唯一的字符串。
  • 系统会将一个 JSON 数组解析为新的未冻结 Starlark 列表。
如果 x 不是有效的 JSON 编码,解码失败。

参数

参数 说明
x 必需

encode

string json.encode(x)

编码函数接受一个必需位置参数,该参数会在以下情况下转换为 JSON:

  • None、True 和 False 分别转换为 &null 值。
  • 无论大小,整数都会编码为小数整数。某些解码器可能无法解码非常大的整数。
  • 浮点数使用小数点和/或指数进行编码,即使其数值为整数也是如此。对非有限浮点值进行编码会出错。
  • 字符串值编码为表示该值的 JSON 字符串字面量。每个未配对的代理都会替换为 U+FFFD。
  • 字典按键顺序编码为 JSON 对象。如果任何键不是字符串,则会发生错误。
  • 列表或元组编码为 JSON 数组。
  • 类似于结构体的值按字段名称顺序编码为 JSON 对象。
应用定义的类型可以定义自己的 JSON 编码。 对任何其他值进行编码会导致错误。

参数

参数 说明
x 必需

编码缩进

string json.encode_indent(x, *, prefix='', indent='\t')

encode_缩进函数等效于 json.indent(json.encode(x), ...)。有关格式参数的说明,请参阅 indent

参数

参数 说明
x 必需
prefix default = ''
indent default = '\t'

缩进

string json.indent(s, *, prefix='', indent='\t')

缩进函数会返回有效的 JSON 编码字符串的缩进形式。每个数组元素或对象字段都会另起一行,根据前缀字符串的前缀字符串开头,后跟缩进字符串的一个或多个副本。 该函数接受一个必需的位置参数(JSON 字符串)以及两个可选的仅含字符串的字符串参数(前缀和缩进),它们用于指定每个新行的前缀和缩进单位。如果输入无效,函数可能会失败或返回无效输出。

参数

参数 说明
s 必需
prefix default = ''
indent default = '\t'