'Jolt transform specification input

i have the following input json:

{
  "tags": {
    "event": "observation",
    "source": "hunter"
  }
}

The output JSON should look like below:

{
  "tags" : [ "event:observation", "source:hunter" ]
}

can anyone provide any guidance on how to build a proper jolt specification for the above?

thank you very much for the help ^_^



Solution 1:[1]

You can use this specification

[
  { // combine each key-value pair under within common arrays
    "operation": "shift",
    "spec": {
      "tags": {
        "*": {
          "$": "&2_&1",
          "@": "&2_&1"
        }
      }
    }
  },
  { // concatenate key-value pairs by colon characters 
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=join(':',@(1,&))"
    }
  },
  {
    "operation": "shift",
    "spec": { // make array key common("tags") for all arrays 
              // through use of _ seperator and * wildcard 
      "*_*": "&(0,1)"
    }
  }
]

the demo on the site http://jolt-demo.appspot.com/ is

enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Barbaros Özhan