首页 > 解决方案 > 使用 Jolt 将字段从内部 JSON 插入外部 JSON

问题描述

我有一个这样的 JSON

"Top1": {
          "top11": "top11",
          "top12": "top12",
          "Middle1": 
            {
              "middle11": "middle11",
              "middle12": "middle12",
            },
            Middle2": 
            {
              "middle21": "middle21",
              "middle22": "middle22",
              "Inner1":{

                 "inner11":"inner11"
                 "inner12":"inner12"
                        }
            }
}

我怎样才能像这样转换它

"Top1": {
          "top11": "top11",
          "top12": "top12",
          "Middle1": 
            {
              "middle11": "middle11",
              "middle12": "middle12",
               "inner11:"inner11"

            },
            Middle2": 
            {
              "middle21": "middle21",
              "middle22": "middle22",
              "Inner1":{

                 "inner12":"inner12"
                        }
            }
}

我只需要把 inner11 放在 Middle1 里面。如何通过 jolt 实现这一目标。我尝试使用@[&]但这仅在最里面是一个数组而不是像这样的单个对象时才有效。

标签: apache-nifijolt

解决方案


这些都是已知的字段名称吗?如果是这样,您可以使用以下规范:

[
  {
    "operation": "shift",
    "spec": {
      "Top1": {
        "Middle1": {
          "@(1,Middle2.Inner1.inner11)": "Top1.Middle1.inner11",
          "*": "Top1.Middle1.&"
        },
        "Middle2": {
          "Inner1": {
            "inner11": null,
            "*": "Top1.Middle2.Inner1.&"
          },
          "*": "Top1.Middle2.&"
        },
        "*": "Top1.&"
      }
    }
  }
]

推荐阅读