如何在JOLT转换中比较字段值?

时间:2019-03-08 11:09:12

标签: json transformation jolt

我的输入如下,

输入:

{
  "a": 1,
  "b": 2
}

规格:

[
 {
  "operation": "shift",
  "spec": {
    "a": {
      "@(2,b)": {
        "#Matched": "result"
      },
      "*": {
        "#Not Matched": "result"
      }
    }
  }
}]

输出:

{
 "result" : [ "Matched", "Not Matched" ]
}

预期:

{
 "result" : "Not Matched" 
}

任何人都可以建议我像往常一样工作。

1 个答案:

答案 0 :(得分:1)

您可以通过三个步骤对其进行转换:

  1. 将值移至键
  2. 找到匹配的键
  3. 如果找不到匹配的键,则添加“不匹配”结果

(无法想象为什么它不适用于值)

类似:

[
  {
    "operation": "shift",
    "spec": {
      "*": "&.@0"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "a": {
        "*": {
          "@(2,b.&)": {
            "#Matched": "result"
          }
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "result": "Not Matched"
    }
  }
]