我有一个JSON输入,我使用JOLT shift进行转换。我的问题是我想使用输入键的值,作为输出数据中的新键,并且并行地向该新输出键添加另一个值。以下是我的意见:
"Description": {
"Name": "John",
"KeyNameId": "John123",
"Description": "John's description"
}
我希望我的输出为:
"Description": {
"John123": "John's description"
}
无论如何不使用两个班次操作来做到这一点? 或者如果不可能有两个班次?
答案 0 :(得分:2)
是的,可以使用“@(Number,words)”运算符在一个班次中完成。
输入 - 为清晰起见略微修改
{
"Top": {
"Name": "John",
"KeyNameId": "John123",
"Description": "John's description"
}
}
规格
[
{
"operation": "shift",
"spec": {
"Top": {
// match the key "Description" and copy it's value to the Output.
// The Output path being defined by @(1,KeyNameId), which means
// go back up the tree 2 levels (0,1) and lookup the value of
// "KeyNameId"
"Description": "@(1,KeyNameId)"
}
}
}
]
答案 1 :(得分:0)
更准确地说,
[
{
"operation": "shift",
"spec": {
"Description": {
"@Description": "Description.@KeyNameId"
}
}
}
]