motstgo
motstgo

Reputation: 13

Map Jolt Transformation

I am trying to transform the following input:

{
    "test_types": {
        "3": "Type3",
        "21": "type21",
        "16": "Type16",
        "15": "type15"
    },
    "name": "BlackSquid",
    "obj_name": "malware",
    "value": "2341743",
    "type": "16"
}

Into this output:

{
    "test_types": {
        "3": "Type3",
        "21": "type21",
        "16": "Type16",
        "15": "type15"
    },
    "name": "BlackSquid",
    "obj_name": "malware",
    "value": "2341743",
    "type": "16",
    "type_name": "Type16"
}

I have tried to use a "modify-overwrite-beta" spec by hardcoding the key value which gives me the result I need:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "type_name": "@(1,test_types.16)"
    }
  }
]

but I would like to use the "type" value dynamically. The following throws an exception but maybe something like this:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "type_name": "@(1,test_types.@(1,type))"
    }
    }
]

Upvotes: 1

Views: 157

Answers (1)

Barbaros Özhan
Barbaros Özhan

Reputation: 65408

No need to use modify-overwrite-beta spec, but condition based shift spec for the key type would suffice such as


[{
  "operation": "shift",
  "spec": {
    "*": "&",
    "type": {
      "*": {
        "@(2,type)": "type",
        "@(2,test_types.&)": "type_name"
      }
    }
  }
}]

Upvotes: 0

Related Questions