如何使用jolt将json的其余部分转换为一个字段值?

时间:2015-05-16 15:10:30

标签: json transformation jolt

这是json输入:

{
    "myRootKey" {
        "directMove":"directValue",
        "marker":"THE_MARKER",
        "someTextField":"someString",
        "someObject":{
            "someKey":"value"
        }
    }
}
输出应该是:

{
    "myRootKey" {
        "subKey":{
            "directMove":"directValue",
        }
        "THE_MARKER": {
            "someTextField":"someString",
            "someObject":{
                "someKey":"value"
            }
        }
    }
}

直接移动很明显,但marker对象的输入值是多少?

2 个答案:

答案 0 :(得分:0)

您可以匹配“someTextField”和“someObject”,但使用新的“@”/查找树逻辑来查找“标记”以用作输出路径。

规格

[
  {
    "operation": "shift",
    "spec": {
      "myRootKey": {
        "directMove": "myRootKey.subKey.directValue",
        "someTextField": "@(1,marker).someTextField",
        "someObject": "@(1,marker).someObject"
      }
    }
  }
]

答案 1 :(得分:0)

  • @(1,marker)可让您检索标记字段的值
  • &1检索匹配节点的值

所以您要查找的规格如下:

[
  {
    "operation": "shift",
    "spec": {
      "myRootKey": {
        "directMove": "myRootKey.subKey.directValue",
        "someTextField": "&1.@(1,marker).someTextField",
        "someObject": "&1.@(1,marker).someObject"
      }
    }
  }
]