嵌套 JSON 的 JOLT 转换?

JOLT transformation for nested JSON?

我有一个 JSON 看起来像这样 :

{
"Level1": {
    "Level2": {
        "val1": "Test",
        "val2": "Val"
    }
}

}

当我对此应用以下 Jolt 移位转换时:

[{
    "operation": "shift",
    "spec": {
        "Level1": {
            "Level2": {
                "val1": "val001",
                "val2": "val002"
            }
        }
    }
}]

我得到以下结果:

    {
    "val001": "Test",
    "val002": "Val"
}

为什么我在输出中看不到Level1、Level2?请某人帮忙,我想在输出中看到它与输入的内容太相似了。

shift 规范中的值通常指输出中键的位置,因此您需要在值中包含 Level1 和 Level2:

[{
  "operation": "shift",
  "spec": {
    "Level1": {
      "Level2": {
        "val1": "Level1.Level2.val001",
        "val2": "Level1.Level2.val002"
      }
    }
  }
}]

如果 Level1 and/or Level2 可以是任意的,您可以使用 @ 运算符 "go back up the tree" 并获取值(示例参见 Shiftr javadoc)。