如何使用 Jolt 转换从数组中删除 null
How to remove null from a array using Jolt transformation
要求 - 我想使用 Jolt 规范从转换后的 Json 中删除 null
值。
输入-
{
"parentResponse": {
"parentHierarchy": [
{
"hierarchyType": "MAINTAINANCE",
"parents": [
{
"level": "Test",
"levelCode": "BO",
"operationalId": "OP"
},
{
"level": "Test",
"levelCode": "BO",
"operationalId": "OP"
},
{
"level": "Contract",
"levelCode": "CO",
"operationalId": "DP"
}
]
}
]
}
}
震动规格 -
如果 hierarchyType = "MAINTAINANCE" && parents[].levelCode = "CO" 然后复制 parents[].operationalId 到 output
[
{
"operation": "shift",
"spec": {
"parentResponse": {
"parentHierarchy": {
"*": {
"hierarchyType": {
"MAINTAINANCE": {
"@(2,parents)": {
"*": {
"levelCode": {
"CO": {
"@(2,operationalId)": "request.common.hierarchyData.hrchyArray[&3].hrchyEntityId"
}
}
}
}
}
}
}
}
}
}
}
]
实际输出-
{
"request" : {
"common" : {
"hierarchyData" : {
"hrchyArray" : [ null, null, {
"hrchyEntityId" : "DP"
} ]
}
}
}
}
预期输出 -
{
"request" : {
"common" : {
"hierarchyData" : {
"hrchyArray" : [{
"hrchyEntityId" : "DP"
} ]
}
}
}
}
您可以将额外的 modify-beta 转换与 recursivelySquashNulls 一起添加到当前规范,例如
{
"operation": "modify-overwrite-beta",
"spec": {
"*": "=recursivelySquashNulls"
}
}
编辑 : 不要添加上面的额外规范如果不是删除所有其他 null 其他可能存在的数组的元素。
而是将 "request.common.hierarchyData.hrchyArray[&3].hrchyEntityId" 部分替换为
"request.common.hierarchyData.hrchyArray[].hrchyEntityId"表示为最里面的叶节点。
通过使用 &3 替换,您可以上升到 parents 数组的级别,并且开始额外漫游数组的所有三个元素。
要求 - 我想使用 Jolt 规范从转换后的 Json 中删除 null
值。
输入-
{
"parentResponse": {
"parentHierarchy": [
{
"hierarchyType": "MAINTAINANCE",
"parents": [
{
"level": "Test",
"levelCode": "BO",
"operationalId": "OP"
},
{
"level": "Test",
"levelCode": "BO",
"operationalId": "OP"
},
{
"level": "Contract",
"levelCode": "CO",
"operationalId": "DP"
}
]
}
]
}
}
震动规格 - 如果 hierarchyType = "MAINTAINANCE" && parents[].levelCode = "CO" 然后复制 parents[].operationalId 到 output
[
{
"operation": "shift",
"spec": {
"parentResponse": {
"parentHierarchy": {
"*": {
"hierarchyType": {
"MAINTAINANCE": {
"@(2,parents)": {
"*": {
"levelCode": {
"CO": {
"@(2,operationalId)": "request.common.hierarchyData.hrchyArray[&3].hrchyEntityId"
}
}
}
}
}
}
}
}
}
}
}
]
实际输出-
{
"request" : {
"common" : {
"hierarchyData" : {
"hrchyArray" : [ null, null, {
"hrchyEntityId" : "DP"
} ]
}
}
}
}
预期输出 -
{
"request" : {
"common" : {
"hierarchyData" : {
"hrchyArray" : [{
"hrchyEntityId" : "DP"
} ]
}
}
}
}
您可以将额外的 modify-beta 转换与 recursivelySquashNulls 一起添加到当前规范,例如
{
"operation": "modify-overwrite-beta",
"spec": {
"*": "=recursivelySquashNulls"
}
}
编辑 : 不要添加上面的额外规范如果不是删除所有其他 null 其他可能存在的数组的元素。
而是将 "request.common.hierarchyData.hrchyArray[&3].hrchyEntityId" 部分替换为 "request.common.hierarchyData.hrchyArray[].hrchyEntityId"表示为最里面的叶节点。
通过使用 &3 替换,您可以上升到 parents 数组的级别,并且开始额外漫游数组的所有三个元素。