Jolt - 有条件地更新 LHS 值
Jolt - Conditional update LHS value
我基本上有 2 个不同的条件可以影响输出中键的值。
我有以下输入:
{
"state": "PRESENT",
"sample": {
"type": "OP"
}
}
我有以下规格:
[
{
"operation": "shift",
"spec": {
"state": {
"PRESENT": {
"#ANSWER1": "answer"
},
"*": {
"$": "answer"
}
},
"sample":{
"type":{
"OP":{
"#ANSWER2": "answer"
}
}
}
}
}
]
现在如果你看到两个条件都为真,最终输出如下。这两个值都以数组形式出现
{
"answer" : [ "ANSWER1", "ANSWER2" ]
}
但我正在寻找基于第二个条件的输出。基本上覆盖“answer”属性中的现有值:
{
"answer" : "ANSWER2"
}
你可以再添加一个shift转换
{
"operation": "shift",
"spec": {
"*": { "1": { "@": "&2" } }
}
}
为了选择第二个(索引为 1
的元素)现有规范。
如果选择数组的左侧元素是这种情况,那么基数 转换 可能更适合使用
{
"operation": "cardinality",
"spec": {
"*": "ONE"
}
}
我基本上有 2 个不同的条件可以影响输出中键的值。
我有以下输入:
{
"state": "PRESENT",
"sample": {
"type": "OP"
}
}
我有以下规格:
[
{
"operation": "shift",
"spec": {
"state": {
"PRESENT": {
"#ANSWER1": "answer"
},
"*": {
"$": "answer"
}
},
"sample":{
"type":{
"OP":{
"#ANSWER2": "answer"
}
}
}
}
}
]
现在如果你看到两个条件都为真,最终输出如下。这两个值都以数组形式出现
{
"answer" : [ "ANSWER1", "ANSWER2" ]
}
但我正在寻找基于第二个条件的输出。基本上覆盖“answer”属性中的现有值:
{
"answer" : "ANSWER2"
}
你可以再添加一个shift转换
{
"operation": "shift",
"spec": {
"*": { "1": { "@": "&2" } }
}
}
为了选择第二个(索引为 1
的元素)现有规范。
如果选择数组的左侧元素是这种情况,那么基数 转换 可能更适合使用
{
"operation": "cardinality",
"spec": {
"*": "ONE"
}
}