Home > Mobile >  Masking cards usgins jolt
Masking cards usgins jolt

Time:01-13

How can I iterate through list and replace some elements in it? I have this input

{
  "clients": [
    {
      "clientId": "166734",
      "info": {
        "cards": [
          "378282246310005",
          "371449635398431"
        ]
      }
    }
  ]
}

I want mask cards like this "cards" : [ "3782*****0005", "3714*****8431" ]

CodePudding user response:

You can use shift transformations to convert the cards array to indexed and 0,1,** labeled objects in order to prepare for modify transformation spec in which substring and concat functions are used such as

[
  {
    "operation": "shift",
    "spec": {
      "clients": {
        "*": {
          "*": "&2[#2].&",
          "info": {
            "cards": {
              "*": {
                "@": "&5[#5].&3.&2.&1.&"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "clients": {
        "*": {
          "info": {
            "cards": {
              "*": {
                "p1": "=substring(@(1,&1),0,4)",
                "p2": "=substring(@(1,&1),11,15)",
                "cs": "=concat(@(1,p1),'********',@(1,p2))"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "clients": {
        "*": {
          "*": "&2[#2].&",
          "info": {
            "cards": {
              "*": {
                "cs": "&5[#5].&3.&2[]"
              }
            }
          }
        }
      }
    }
  }
]
  • Related