Reputation: 835
I have a JSON like this
"Top1": {
"top11": "top11",
"top12": "top12",
"Middle1":
{
"middle11": "middle11",
"middle12": "middle12",
},
Middle2":
{
"middle21": "middle21",
"middle22": "middle22",
"Inner1":{
"inner11":"inner11"
"inner12":"inner12"
}
}
}
How can I convert it like this
"Top1": {
"top11": "top11",
"top12": "top12",
"Middle1":
{
"middle11": "middle11",
"middle12": "middle12",
"inner11:"inner11"
},
Middle2":
{
"middle21": "middle21",
"middle22": "middle22",
"Inner1":{
"inner12":"inner12"
}
}
}
I only need the inner11 to be taken inside Middle1. How to achieve this with jolt. I tried using @
and [&]
but this is only working when the innermost is an array and not a single object like this.
Upvotes: 0
Views: 89
Reputation: 12083
Are those all known field names? If so you can use the following spec:
[
{
"operation": "shift",
"spec": {
"Top1": {
"Middle1": {
"@(1,Middle2.Inner1.inner11)": "Top1.Middle1.inner11",
"*": "Top1.Middle1.&"
},
"Middle2": {
"Inner1": {
"inner11": null,
"*": "Top1.Middle2.Inner1.&"
},
"*": "Top1.Middle2.&"
},
"*": "Top1.&"
}
}
}
]
Upvotes: 1