本页面介绍 Apigee Integration 中提供的数据转换器脚本任务的其他一组预定义的 Jsonnet 函数。
要使用以下预定义函数,必须在脚本中导入 functions
库。通过导入 functions
库,您可以同时使用 Jsonnet 标准函数和预定义的数据转换器函数。
Apigee Integration 支持 Jsonnet 函数库 v0.20.0。如需了解 Jsonnet 标准函数,请参阅 Jsonnet 标准库。
数组函数
Average
语法 |
avg(arr)
|
说明 |
计算数组中所有值的数值平均值。
|
输入参数 |
arr:输入数组。 |
返回类型 |
DOUBLE
|
输出 |
返回数组中所有值的平均值。
|
Contains
语法 |
contains(arr, elem)
|
说明 |
检查数组中是否包含指定元素。 |
输入参数 |
arr:输入数组。 elem:要搜索的数组元素。
|
返回类型 |
BOOLEAN
|
输出 |
如果找到匹配项,则返回 TRUE,否则返回 FALSE。 |
Max Array
语法 |
maxArray(arr)
|
说明 |
查找数组中的最大值。
|
输入参数 |
arr:输入数组。 |
返回类型 |
输入数组的数据类型。 |
输出 |
返回数组中的最大值。
|
Min Array
语法 |
minArray(arr)
|
说明 |
查找数组中的最小值。
|
输入参数 |
arr:输入数组。 |
返回类型 |
输入数组的数据类型。 |
输出 | 返回数组中的最小值。
|
Remove
语法 |
remove(arr, elem)
|
说明 |
从数组中移除指定的元素。 |
输入参数 |
arr:输入数组。 elem:要移除的数组元素。
|
返回类型 |
输入数组的数据类型。 |
输出 |
移除指定的元素后,返回更新后的数组。
|
Remove At
语法 |
removeAt(arr, index)
|
说明 |
从数组中移除指定索引位置的元素。
|
输入参数 |
arr:输入数组。 index:要移除的元素的数组索引。
|
返回类型 |
输入数组的数据类型。 |
输出 |
移除指定的元素后,返回更新后的数组。
|
Sum
语法 |
sum(arr)
|
说明 |
将数组中的所有值相加。
|
输入参数 |
arr:输入数组。 |
返回类型 |
输入数组的数据类型。 |
输出 |
返回数组中所有元素的总和。 |
GroupBy
语法 |
groupBy(array, function)
|
说明 |
创建一个对象,对象由通过迭代函数运行数组每个元素的结果而生成的键。例如,f.groupBy([1,1.3,1.8],std.floor) 会生成 {"1": [1,1.3,1.8]} 。 |
输入参数 |
- array:方法遍历的集合。
function:为数组中的每个元素调用的函数。
|
返回类型 |
JSON
|
输出 |
返回组合后的聚合对象。 |
Zip
语法 |
zip([arrays])
|
说明 |
它会创建一个分组元素数组,其中第一个元素包含给定数组的第一个元素,第二个元素包含给定数组的第二个元素,依此类推。例如,f.zip([[1, "one", "I"],[2, "two", "II"],[3, "three", "III"]]) 会生成 [[1,2,3],["one", "two", "three"],["I", "II", "III"]] 。 |
输入参数 |
[arrays]:此参数包含要处理的数组。 |
返回类型 |
array
|
输出 |
返回重新分组的元素的新数组。 |
Unzip
语法 |
unzip(array)
|
说明 |
它会创建一个分组元素的数组。接受分组元素的数组,并创建一个将元素重新分组为其压缩前配置的数组。例如,f.unzip([[1, "one", "I"],[2, "two", "II"],[3, "three", "III"]]) 会生成 [[1,2,3],["one", "two", "three"],["I", "II", "III"]] 。 |
输入参数 |
array:此参数包含要处理的分组元素数组。 |
返回类型 |
array
|
输出 |
返回重新分组的元素的新数组。 |
聚合函数
XNOR
语法 |
xnor(a, b)
|
说明 |
对指定的布尔值执行逻辑 XNOR 运算。 |
输入参数 |
a:布尔值。
b:布尔值。
|
返回类型 |
BOOLEAN
|
输出 |
返回两个给定布尔值的 XNOR。 |
Xor
语法 |
xor(a, b)
|
说明 |
对指定的布尔值执行逻辑 XOR 运算。 |
输入参数 |
a:布尔值。
b:布尔值。
|
返回类型 |
BOOLEAN
|
输出 |
返回两个给定布尔值的 XOR 运算。 |
哈希函数
SHA1
语法 |
sha1(str)
|
说明 |
使用安全哈希算法 1 (SHA-1) 计算输入 STRING 的加密哈希值。
|
输入参数 |
str:输入字符串。 |
返回类型 |
BYTES
|
输出 |
返回 160 位(20 字节)哈希值。 |
SHA256
语法 |
sha256(str)
|
说明 |
使用安全哈希算法 256 (SHA-256) 计算输入 STRING 的加密哈希值。 |
输入参数 |
str:输入字符串。 |
返回类型 |
BYTES
|
输出 |
返回 256 位(32 字节)哈希值。 |
SHA512
语法 |
sha512(str)
|
说明 |
使用安全哈希算法 512 (SHA-512) 计算输入 STRING 的加密哈希值。 |
输入参数 |
str:输入字符串。 |
返回类型 |
BYTES
|
输出 |
返回 512 位(64 字节)哈希值。
|
SHA3
语法 |
sha3(str)
|
说明 |
使用安全哈希算法 3 (SHA-3) 计算输入 STRING 的加密哈希值。
|
输入参数 |
str:输入字符串。 |
返回类型 |
BYTES
|
输出 |
返回 512 位(64 字节)哈希值。
|
JSON 函数
Manifest XML
语法 |
manifestXml(json, format = "badgerfish", indent_output = false)
|
说明 |
将指定的输入 JSON 对象转换为 XML 字符串。
|
输入参数 |
json:输入 JSON 对象。
format:输入 JSON 表示法格式。
indent_output:布尔值输入,用于指示输出 XML 字符串是否应缩进。默认值为 False 。
|
返回类型 |
STRING
|
输出 |
返回所提供 JSON 对象表示法的 XML 字符串。
|
Object Remove Key
语法 |
objectRemoveKey(obj, key)
|
说明 |
从 JSON 对象中移除属性。
|
输入参数 |
obj:输入 JSON 对象。 key:要移除的 JSON 属性。
|
返回类型 |
JSON
|
输出 |
移除了指定的属性及其相应值后的更新 JSON 对象。
|
Parse XML
语法 |
parseXml(xml, format = "badgerfish")
|
说明 |
将指定的输入 XML 字符串解析为 JSON 对象。
|
输入参数 |
xml:输入 XML 字符串。
format:输出 JSON 表示法格式。
|
返回类型 |
JSON
|
输出 |
返回所提供 XML 字符串的 JSON 对象表示法。
|
语法 |
parseCsvWithHeader(input, delimiter = ",", overwrite_duplicate_headers = true)
|
说明 |
将给定输入 csv 字符串解析为 json。第一行将被视为标题。例如,f.parseCsvWithHeader("index,product,company\n1,Application Integration,Google\n2,Pubsub,Google") 会生成 [{"index": "1", "product": "Application Integration", "company": "Google"},{"index": "2", "product": "Pubsub", "company": "Google"}] 。 |
输入参数 |
input:要解析的 CSV 字符串。 delimiter:要使用的分隔符字符串。默认值为 ','。 overwrite_duplicate_headers:覆盖重复标头值的选项。如果设置为 false,则会重命名重复的标头。默认值为 true 。
|
返回类型 |
JSON
|
输出 |
返回给定 csv 字符串的 json 表示法。 |
Manifest CSV
语法 |
manifestCsv(json, headers = null)
|
说明 |
将给定 json 转换为 csv 字符串。例如,f.manifestCsv([{"index": "1", "product": "Application Integration", "company": "Google"},{"index": "2", "product": "Pubsub", "company": "Google"}]) 会生成 index,product,company\n1,Application Integration,Google\n2,Pubsub,Google 。 |
输入参数 |
json:要转换为 csv 的 JSON。 headers:csv 输出的标头列表。如果未提供值,则使用所有标头。 |
返回类型 |
STRING
|
输出 |
以给定格式从 json 返回 csv 字符串。 |
数学函数
Is Decimal
语法 |
isDecimal(num)
|
说明 |
检查给定数字是否为小数。
|
输入参数 |
num:输入数字。
|
返回类型 |
BOOLEAN
|
输出 |
如果数字是小数,则返回 TRUE,否则返回 FALSE。 |
Is Even
语法 |
isEven(num)
|
说明 |
检查给定数字是否为偶数。
|
输入参数 |
num:输入数字。
|
返回类型 |
BOOLEAN
|
输出 |
如果数字为偶数,则返回 TRUE;否则返回 FALSE。 |
Is Integer
语法 |
isInteger(num)
|
说明 |
检查给定数字是否为整数。
|
输入参数 |
num:输入数字。
|
返回类型 |
BOOLEAN
|
输出 |
如果数字是整数,则返回 TRUE,否则返回 FALSE。 |
Is Odd
语法 |
isOdd(num)
|
说明 |
检查给定数字是否为奇数。 |
输入参数 |
num:输入数字。
|
返回类型 |
BOOLEAN
|
输出 |
如果数字为奇数,则返回 TRUE;否则返回 FALSE。
|
Random Number
语法 |
randomNumber(lowerBound, upperBound)
|
说明 |
在指定范围之间生成随机实数。 |
输入参数 |
lowerBound:较低范围值(含边界值)。默认值为 0 。
upperBound:较高范围值(不含边界值)。默认值为 1 。
|
返回类型 |
实数。 |
输出 |
返回 lowerBound 和 upperBound 之间的随机实数。 |
Round
语法 |
round(input)
|
说明 |
将数字舍入到最接近的整数。 |
输入参数 |
input:要舍入的值。
|
返回类型 |
INTEGER
|
返回值 |
返回最接近的舍入整数。 |
字符串函数
Equals Ignore Case
语法 |
equalsIgnoreCase(str1, str2)
|
说明 |
比较两个给定字符串值,无论字符串大小写如何。 |
输入参数 |
str1:输入字符串。 str2:输入字符串。
|
返回类型 |
BOOLEAN
|
输出 |
如果指定的值与现有值匹配(忽略大小写),则返回 TRUE,否则返回 FALSE。 |
Is Empty
语法 |
isEmpty(str)
|
说明 |
检查给定字符串的长度是否为 0。
|
输入参数 |
str:输入字符串。 |
返回类型 |
BOOLEAN
|
输出 |
如果字符串为空,则返回 TRUE,否则返回 FALSE。 |
Match
语法 |
match(str, regexp)
|
说明 |
检索字符串与正则表达式匹配的结果。 |
输入参数 |
str:输入字符串。 regexp:re2 正则表达式。
|
返回类型 |
ARRAY
|
输出 |
返回一个数组,该数组由 str 中与正则表达式 regexp 匹配的所有子字符串组成。如果不存在匹配项,则返回空数组。 |
Trim
语法 |
trim(str)
|
说明 |
移除给定字符串的所有前导和尾随空格。
|
输入参数 |
str:输入字符串。 |
返回类型 |
STRING
|
输出 |
返回移除了前导和尾随空白的字符串的副本。 |
时间戳函数
语法 |
dateFormat(timestamp, format_string, timezone, current_format)
|
说明 |
根据指定的 format_string 设置时间戳格式。
|
输入参数 |
timestamp:输入时间戳。
format_string:新的时间戳格式。如需查看可用于形成新时间戳格式字符串的格式元素列表,请参阅支持的时间戳格式元素。
timezone:提供的输入时间戳的时区。默认值为 UTC 。
current_format:用于解析提供的输入时间戳的格式。默认值为 E (纪元)。
|
返回类型 |
STRING
|
输出 |
根据指定的 format_string 转换输入 timestamp 后,返回新字符串。 |
支持的时间戳格式元素
下表列出了 dateFormat() 函数支持的格式元素:
格式元素 |
说明 |
示例 |
YYYY |
年(4 位数)。 |
2023 |
YY |
年份中的最后 2 位数字。 |
23 |
MMMM |
首字母大写的月份名称。 |
March |
MMM |
首字母大写的月份缩写名称。 |
Mar |
MM |
从 01 到 12 的月份。 |
03 |
M |
从 1 到 12 的月份。 |
3 |
DDDD |
首字母大写的日期名称。 |
Monday |
DDD |
日期的缩写名称。 |
Mon |
DD |
从 01 到 31 的日期。 |
06 |
D |
从 1 到 31 的日期。 |
6 |
HH |
24 小时制的小时数,从 00 到 23。 |
15 |
hh |
12 小时制的小时数,从 01 到 12。 |
03 |
h |
12 小时制的小时数,从 1 到 12。 |
3 |
mm |
从 00 到 59 的分钟数。 |
04 |
m |
从 0 到 59 的分钟数。 |
4 |
ss |
从 00 到 59 的秒数。 |
08 |
s |
从 0 到 59 的秒数。 |
8 |
FFFFFFFFF |
指定数字右侧的九位数(包括零)小数秒数。 |
00.123456789 |
FFFFFFFF |
指定数字右侧的八位数(包括零)小数秒数。 |
00.12345678 |
FFFFFFF |
指定数字右侧的七位数(包括零)小数秒数。 |
00.1234567 |
FFFFFF |
指定数字右侧的六位数(包括零)小数秒数。 |
00.123456 |
FFFFF |
指定数字右侧的五位数(包括零)小数秒数。 |
00.12345 |
FFFF |
指定数字右侧的四位数(包括零)小数秒数。 |
00.1234 |
FFF |
指定数字右侧的三位数(包括零)小数秒数。 |
00.123 |
FF |
指定数字右侧的两位数(包括零)小数秒数。 |
00.12 |
F |
指定数字右侧的一位数(包括零)小数秒数。 |
00.1 |
fffffffff |
九位数小数秒数。 |
987654321 |
ffffffff |
八位数小数秒数。 |
98765432 |
fffffff |
七位数小数秒数。 |
9876543 |
ffffff |
六位数小数秒数。 |
987654 |
fffff |
五位数小数秒数。 |
98765 |
ffff |
四位数小数秒数。 |
9876 |
fff |
三位数小数秒数。 |
987 |
ff |
两位数小数秒数。 |
98 |
f |
一位数小数秒数。 |
9 |
tt |
时段指示符(凌晨、上午、中午、下午、晚上)。设置格式时,格式为 AM 或 PM。 |
PM |
t |
简写形式的时段指示符(凌晨、上午、中午、下午、晚上)。映射到小写的 am 或 pm。 |
pm |
K |
时区名称。 |
PST |
kk |
±xx:xx 格式的时区。 |
-8:00:00 |
k |
±xxxx 格式的时区。 |
-8000 |
Is Leap Year
语法 |
isLeapYear(year)
|
说明 |
检查给定年份是否为闰年。 |
输入参数 |
year:输入年份(实数)。
|
返回类型 |
BOOLEAN
|
输出 |
如果年份是闰年,则返回 TRUE;否则返回 FALSE。
|
Now In Millis
语法 |
nowInMillis()
|
说明 |
返回集成的当前 Unix 纪元时间(以毫秒为单位)。 |
输入参数 |
不适用
|
返回类型 |
INT64
|
输出 |
返回当前的 Unix 纪元时间(以毫秒为单位)。 |
实用函数
UUID
语法 |
uuid()
|
说明 |
以 STRING 形式生成随机通用唯一标识符 (UUID)。返回的 STRING 包含 32 个十六进制数字,这些数字由连字符分为五组,具体形式为 8-4-4-4-12。十六进制数字表示符合 RFC 4122 第 4.4 节的 122 个随机位和 6 个固定位。返回的 STRING 是小写字母。
|
输入参数 |
不适用
|
返回类型 |
STRING
|
输出 |
以字符串格式返回生成的 UUID。 |
Integration name
语法 |
getIntegrationName()
|
说明 |
获取当前集成的名称。 |
输入参数 |
不适用
|
返回类型 |
STRING
|
输出 |
返回当前集成的名称。
|
Integration region
语法 |
getIntegrationRegion()
|
说明 |
获取当前集成的区域。 |
输入参数 |
不适用
|
返回类型 |
STRING
|
输出 |
返回当前集成的区域。
|
Integration version ID
语法 |
getIntegrationVersionId()
|
说明 |
获取当前集成的集成版本 ID。
|
输入参数 |
不适用
|
返回类型 |
STRING
|
输出 |
返回当前集成的集成版本 ID。
|
Integration version number
语法 |
getIntegrationVersionNumber()
|
说明 |
获取当前集成的版本号。
|
输入参数 |
不适用
|
返回类型 |
NUMBER
|
输出 |
返回当前集成的版本号。
|
Execution ID
语法 |
getExecutionId()
|
说明 |
获取当前集成执行的 ID。 |
输入参数 |
不适用
|
返回类型 |
STRING
|
输出 |
返回当前集成执行的执行 ID。 |
Project ID
语法 |
getProjectId()
|
说明 |
获取当前集成的 Google Cloud 项目 ID。 |
输入参数 |
不适用
|
返回类型 |
STRING
|
输出 |
返回当前集成的 Google Cloud 项目 ID。
|