Reputation: 200
I have json like
{
"error_message_1": "missing_field_1",
"error_message_2": "missing_field_2",
"error_message_3": "missing_field_3"
}
{
"payloads":[
{
"error_message_1": "missing_field_1",
"error_message_2": "missing_field_2"
"error_message_3": "missing_field_3"
}],
"timestamp":"$timestmap",
"source":"nifi"
}
please let me know the jolt script for this.
Upvotes: 0
Views: 255
Reputation: 31490
Use this jolt spec:
we are creating payloads array
and keeping all error_message*
keys into payloads array.
[{
"operation": "shift",
"spec": {
"error_message_1": "payloads[0].error_message_1",
"error_message_2": "payloads[0].error_message_2",
"error_message_3": "payloads[0].error_message_3"
}
}, {
"operation": "default",
"spec": {
"timestamp":"$timestmap",
"source":"nifi"
}
}]
Output:
In addition if you want timestamp
value for the timestamp key then use the below spec:
[{
"operation": "shift",
"spec": {
"error_message_1": "payloads[0].error_message_1",
"error_message_2": "payloads[0].error_message_2",
"error_message_3": "payloads[0].error_message_3"
}
}, {
"operation": "default",
"spec": {
"timestamp":"${now():format('yyyy-MM-dd HH:mm:ss.SSS')}",
"source":"nifi"
}
}]
Output:
{
"payloads": [{
"error_message_1": "missing_field_1",
"error_message_2": "missing_field_2",
"error_message_3": "missing_field_3"
}],
"source": "nifi",
"timestamp": "2018-10-30 08:51:16.572"
}
Upvotes: 5