使用颠簸变换截断字符串的一部分
truncate a part of string using jolt transform
输入json:
{
"userid" : "31b25f023c58c969388991a6b9b4030000000000",
"username_id": "54fca0dd914ae593ef65988b4a3e93cccc590000000000"
}
每个值前面有10个0。字符串的总长度可以变化,但它总是会附加 10 个 0。我想删除它。
因此预期输出:
{
"userid" : "31b25f023c58c969388991a6b9b403",
"username_id": "54fca0dd914ae593ef65988b4a3e93cccc59"
}
因此我正在寻找使用 jolt 变换执行此截断的正确方法。
您可以从 modify 转换开始,其中 substring 函数在确定属性的 10 个减少后应用于每个属性值length 以提取除最后十个字符之外的值,如前所述十个零始终是right-padded,例如
[
{
"operation": "modify-overwrite-beta",
"spec": {
"userid_len": "=size(@(1,userid))",
"userid_len_dif": "=intSum(-10,@(1,userid_len))",
"userid": "=substring(@(1,&),0,@(1,userid_len_dif))",
"username_id_len": "=size(@(1,username_id))",
"username_id_len_dif": "=intSum(-10,@(1,username_id_len))",
"username_id": "=substring(@(1,&),0,@(1,username_id_len_dif))"
}
},
{
"operation": "shift",
"spec": {
"use*id": "&"
}
}
]
站点 http://jolt-demo.appspot.com/ 上的 演示 是
输入json:
{
"userid" : "31b25f023c58c969388991a6b9b4030000000000",
"username_id": "54fca0dd914ae593ef65988b4a3e93cccc590000000000"
}
每个值前面有10个0。字符串的总长度可以变化,但它总是会附加 10 个 0。我想删除它。
因此预期输出:
{
"userid" : "31b25f023c58c969388991a6b9b403",
"username_id": "54fca0dd914ae593ef65988b4a3e93cccc59"
}
因此我正在寻找使用 jolt 变换执行此截断的正确方法。
您可以从 modify 转换开始,其中 substring 函数在确定属性的 10 个减少后应用于每个属性值length 以提取除最后十个字符之外的值,如前所述十个零始终是right-padded,例如
[
{
"operation": "modify-overwrite-beta",
"spec": {
"userid_len": "=size(@(1,userid))",
"userid_len_dif": "=intSum(-10,@(1,userid_len))",
"userid": "=substring(@(1,&),0,@(1,userid_len_dif))",
"username_id_len": "=size(@(1,username_id))",
"username_id_len_dif": "=intSum(-10,@(1,username_id_len))",
"username_id": "=substring(@(1,&),0,@(1,username_id_len_dif))"
}
},
{
"operation": "shift",
"spec": {
"use*id": "&"
}
}
]
站点 http://jolt-demo.appspot.com/ 上的 演示 是