JOLT JSON 转置多个元素
JOLT JSON transpose multiple elements
我正在尝试使用 JOLT 进行(简单的?)转置:
输入:
[
{
"AAA": "10000000000",
"Value": 12345,
"BBB": "BBBValue",
"CCC": "CCCValue",
"DDD": "DDDValue"
}
]
输出:
{
"DDDValue" : 12345,
"CCC" : "CCCValue",
"BBB" : "BBBValue"
}
规格:
[
{
"operation": "shift",
"spec": {
"*": {
"AAANewName": "AAA",
"@Value": "@DDD",
"CCC": "CCC",
"BBB": "BBB"
}
}
}
]
现在,当我尝试对输入中的 2 项执行此操作时:
输入:
[
{
"AAA": "10000000000",
"Value": 12345,
"BBB": "BBBValue",
"CCC": "CCCValue",
"DDD": "DDDValue"
},
{
"AAA": "10000000000",
"Value": 123456,
"BBB": "BBBValue",
"CCC": "CCCValue",
"DDD": "DDDValue"
}
]
我得到以下输出:
{
"DDDValue" : [ 12345, 123456 ],
"CCC" : [ "CCCValue", "CCCValue" ],
"BBB" : [ "BBBValue", "BBBValue" ]
}
但我不想这样,我希望这些项目“保持独立”。我需要另一个转换吗?或者我可以以某种方式更改第一个以获得所需的输出,如下所示:
[
{
"DDDValue": 12345,
"CCC": "CCCValue",
"BBB": "BBBValue"
},
{
"DDDValue": 123456,
"CCC": "CCCValue",
"BBB": "BBBValue"
}
]
您可以使用包含替换运算符 (&
) 的方括号表示法,例如
[
{
"operation": "shift",
"spec": {
"*": {
"@Value": "[&].@DDD",
"CCC": "[&1].&",
"BBB": "[&1].&"
}
}
}
]
我正在尝试使用 JOLT 进行(简单的?)转置:
输入:
[
{
"AAA": "10000000000",
"Value": 12345,
"BBB": "BBBValue",
"CCC": "CCCValue",
"DDD": "DDDValue"
}
]
输出:
{
"DDDValue" : 12345,
"CCC" : "CCCValue",
"BBB" : "BBBValue"
}
规格:
[
{
"operation": "shift",
"spec": {
"*": {
"AAANewName": "AAA",
"@Value": "@DDD",
"CCC": "CCC",
"BBB": "BBB"
}
}
}
]
现在,当我尝试对输入中的 2 项执行此操作时:
输入:
[
{
"AAA": "10000000000",
"Value": 12345,
"BBB": "BBBValue",
"CCC": "CCCValue",
"DDD": "DDDValue"
},
{
"AAA": "10000000000",
"Value": 123456,
"BBB": "BBBValue",
"CCC": "CCCValue",
"DDD": "DDDValue"
}
]
我得到以下输出:
{
"DDDValue" : [ 12345, 123456 ],
"CCC" : [ "CCCValue", "CCCValue" ],
"BBB" : [ "BBBValue", "BBBValue" ]
}
但我不想这样,我希望这些项目“保持独立”。我需要另一个转换吗?或者我可以以某种方式更改第一个以获得所需的输出,如下所示:
[
{
"DDDValue": 12345,
"CCC": "CCCValue",
"BBB": "BBBValue"
},
{
"DDDValue": 123456,
"CCC": "CCCValue",
"BBB": "BBBValue"
}
]
您可以使用包含替换运算符 (&
) 的方括号表示法,例如
[
{
"operation": "shift",
"spec": {
"*": {
"@Value": "[&].@DDD",
"CCC": "[&1].&",
"BBB": "[&1].&"
}
}
}
]