JMESPath 自定义函数

JMESPath 自定义函数参考

函数 描述 示例 注释
base64_decode 解码 base64(RFC 4648) 编码的字符串 输入: {"encoded": "SGVsbG8gV29ybGQh"}
表达式: base64_decode(encoded)
输出: Hello World!
capitalize 将字符串中的所有单词的首字母大写 输入: {"name": "john doe"}
表达式: capitalize(name)
输出: John Doe
concat 连接变量或字面量数组 输入: {"fname": "john", "lname": "doe"}
表达式: concat([fname, ' ' ,lname])
输出: john doe
这等效于更详细的内置表达式: ' '.join([fname,lname])
filter_entries 使用给定的 JMESPath 谓词过滤字典(对象)中的条目 输入: { "name": "John", "age": 30, "country": "US", "score": 15}
表达式: filter_entries(@, `key == 'name' || key == 'age'`)
输出:{"name": "John", "age": 30 }
from_entries 将具有 keyvalue 属性的对象数组转换为单个对象 输入: [{"key": "name", "value": "John"}, {"key": "age", "value": 30}, {"key": "city", "value": null}]
表达式: from_entries(@)
输出: {"name": "John", "age": 30, "city": null}
hash 使用指定的 hash_name 哈希函数计算哈希值并返回其十六进制表示 输入: {"some_str": "some_value"}
表达式: hash(some_str, `sha1`)
输出: 8c818171573b03feeae08b0b4ffeb6999e3afc05
支持的算法: sha1 (默认), sha256, md5, sha384, sha3_384, blake2b, sha512, sha3_224, sha224, sha3_256, sha3_512, blake2s
in 检查元素是否与值列表中的任何值匹配 输入: {"el": "b"}
表达式: in(el, ["a", "b", "c"])
输出: True
left 从给定文本字符串的开头返回指定数量的字符 输入: {"greeting": "hello world!"}
表达式: left(greeting, 5)
输出: hello
lower 将字符串中的所有大写字符转换为小写字符 输入: {"fname": "John"}
表达式: lower(fname)
输出: john
mid 从给定文本字符串的中间返回指定数量的字符 输入: {"greeting": "hello world!"}
表达式: mid(greeting, 4, 3)
输出: o w
json_parse 从给定的 json 字符串返回解析后的对象 输入: {"data": '{"greeting": "hello world!"}'}
表达式: parse_json(data)
输出: {"greeting": "hello world!"}
regex_replace 替换与正则表达式匹配的字符串 输入: {"text": "Banana Bannnana"}
表达式: regex_replace(text, 'Ban\w+', 'Apple Apple')
输出: Apple Apple
replace 将子字符串的所有出现替换为新的子字符串 输入: {"sentence": "one four three four!"}
表达式: replace(sentence, 'four', 'two')
输出: one two three two!
right 从给定文本字符串的末尾返回指定数量的字符 输入: {"greeting": "hello world!"}
表达式: right(greeting, 6)
输出: world!
split 根据指定的分隔符(默认为逗号)将给定字符串拆分为字符串列表 输入: {"departments": "finance,hr,r&d"}
表达式: split(departments)
输出: ['finance', 'hr', 'r&d']
默认分隔符是逗号 - 可以将不同的分隔符作为第二个参数传递给函数,例如: split(departments, ';')
time_delta_days 返回给定时间 dt 与现在之间的天数(正数)或从现在开始过去的天数(负数) 输入: {"dt": '2021-10-06T18:56:16.701670+00:00'}
表达式: time_delta_days(dt)
输出: 365
如果 dt 是字符串,则假定为 ISO 日期时间格式(例如 2011-11-04T00:05:23+04:00)。如果 dt 是数字,则假定为 Unix 时间戳(例如 1320365123)。
time_delta_seconds 返回给定时间 dt 与现在之间的秒数(正数)或从现在开始过去的秒数(负数) 输入: {"dt": '2021-10-06T18:56:16.701670+00:00'}
表达式: time_delta_days(dt)
输出: 31557600
如果 dt 是字符串,则假定为 ISO 日期时间格式(例如 2011-11-04T00:05:23+04:00)。如果 dt 是数字,则假定为 Unix 时间戳(例如 1320365123)。
to_entries 将给定对象转换为具有 keyvalue 属性的对象数组 输入: {"name": "John", "age": 30, "city": null}
表达式: to_entries(@)
输出: [{"key": "name", "value": "John"}, {"key": "age", "value": 30}, {"key": "city", "value": null}]
upper 将字符串中的所有小写字符转换为大写字符 输入: {"fname": "john"}
表达式: upper(fname)
输出: JOHN
uuid 生成一个随机 UUID4 并以标准格式作为字符串返回 输入: 无
表达式: uuid()
输出: 3264b35c-ff5d-44a8-8bc7-9be409dac2b7
评价本页
返回顶部 ↑