转换器类型 | 功能描述 | 示例 | 参数说明 |
Date2Str | 将Date时间类型的数据转换为String字符串类型。 | //示例
"dataConverters":[
{
"type": "Date2Str",
"param": {
"pattern":"yyyy-MM-dd"
}
}
]
| pattern(可选):将Date数据转换为String类型数据后,String类型数据的时间格式。 |
Date2Long | 将Date时间类型的数据转换为Long长整型类型。 | "dataConverters":[
{
"type": "Date2Long"
}
]
| 无 |
Number2Str | 将Number数值类型的数据转换为String字符串类型。 | //示例
"dataConverters":[
{
"type": "Number2Str"
}
]
| 无 |
Str2Long | 将String字符串类型的数据转换为Long长整型类型。 | //示例
"dataConverters":[
{
"type": "Str2Long"
}
]
| 无 |
Str2Date | 将String字符串类型的数据转换为Date时间类型。 | //示例
"dataConverters":[
{
"type": "Str2Date",
"param": {
"pattern":"yyyy-MM-dd",
"formats":["yyyyMMdd","yyyyMMddHHmmss"]
}
}
]
| |
BigInt2Date | 将BigInt大整数类型的数据转换为Date时间类型。 | //示例
"dataConverters":[
{
"type": "BigInt2Date"
}
]
| 无 |
Str2Int | 将String字符串类型的数据转换为Int整数类型。 | //示例
"dataConverters":[
{
"type": "Str2Int"
}
]
| 无 |
Str2Double | 将String字符串类型的数据转换为Double双精度数值类型。 | //示例
"dataConverters":[
{
"type": "Str2Double"
}
]
| 无 |
Str2BigDecimal | 将String字符串类型的数据转换为BigDecimal高精度数值类型。 | //示例
"dataConverters":[
{
"type": "Str2BigDecimal"
}
]
| 无 |
IfNull2Default | 当字段值为null时,将字段值设置为default参数中定义的常量值,并支持根据IfNull2Default转换器中嵌套的转换器类型,进一步将字段常量值转换为目标数据类型。 | //示例
//如果该列的值为null或者空字符串,那么设置该值为字符串类型的2021-07-01,并且将该字符串转换为yyyy-MM-dd格式的时间,再将该时间转换为long型的毫秒值。
"dataConverters":[
{
"type": "IfNull2Default",
"param": {
"default": "2021-07-01",
"dataConverters": [
{
"type": "Str2Date",
"param": {
"pattern":"yyyy-MM-dd"
}
},
{
"type": "Date2Long"
}
]
}
}
]
| dataConverters:数据转换器,将default参数的默认值转换为type中定义的类型。实现多次数据转换,多个dataConverters可嵌套使用。 |
NotNull2Null | 如果字段值为非null的值,可以将字段值转换为null。 | //示例
"dataConverters":[
{
"type": "NotNull2Null"
}
]
| 无 |
IfElse | if条件表达式,判断字段值是否满足条件,当if条件表达式成立时,在value中定义满足条件时的字段返回值,当if条件表达式不成立时,在else中定义不满足条件时的字段返回值。 | //示例
"dataConverters":[
{
"type": "IfElse",
"param": {
"if": "return true;",
"value":"if(resolvedValues.get(\"check_card_type\") == 'NAN' && value == null ){return true;} if(resolvedValues.get(\"check_card_type\") == '身份证'){ if(java.util.regex.Pattern.compile(regEx).matcher(value).find() && java.lang.Integer.parseInt(value.substring(6, 10)) >=1900 && java.lang.Integer.parseInt(value.substring(6, 10)) <= nowYear){return true;}} return null;",
"sharedPool":"var nowYear = java.time.LocalDate.now().getYear(); var regEx = \"(110|120|310|510|150|650|540|640|450|230|220|210|120|140|630|370|410|320|340|320|340|330|350|360|430|420|440|460|620|610|520|530)\\\\d{7}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\\\d{3}(\\\\d|X)\"; "
}
}
]
| if:if条件表达式,使用JavaScript引擎解析,确保返回值为boolean类型。导入神策数据的当前字段,和当前插件获取到的value值,dataConverters下配置的param参数,以及已解析的列(map结构),会传递到if表达式中,可通过targetColumnName、value、param、resolvedValues分别获取对应的值。 value:if条件表达式成立时,返回转换后的值,使用JavaScript引擎解析,导入神策数据的当前字段,和当前插件获取到的value值,dataConverters下配置的param参数,以及已解析的列(map结构),会传递到value表达式中,可通过targetColumnName、value、param、resolvedValues分别获取对应的值。 else:if条件表达式不成立时,返回转换后的值,使用JavaScript引擎解析,导入神策数据的当前字段,和当前插件获取到的value值,dataConverters下配置的param参数,以及已解析的列(map结构),会传递到else表达式中,可通过targetColumnName、value、param、resolvedValues分别获取对应的值。 sharedPool:共享区,使用JavaScript引擎解析,该值定义的变量或常量在if、value、else中都能使用。
|
IfNull2Column | 如果字段值为null,则转向取targetColumnName配置项的值,作为当前字段的值。 | //示例
"dataConverters": [
{
"type": "IfNull2Column",
"param": {
"targetColumnName":"age1"
}
}
]
| targetColumnName:导入神策数据的列名。
重要 targetColumnName配置的列需要在应用IfNull2Column转换器的列之前配置。 |