当前位置: 首页 > 知识库问答 >
问题:

如何使用NiFi将平面JSON转换为嵌套JSON

申高峰
2023-03-14

输入 JSON :

{

  "type": "mbrInfo",
  "csId": 123456789,
  "insTS": "14-07-201911:55",
  "seqId": 1234565,
  "title": "Mr",
  "fName": "Amit",
  "mName": "",
  "lName": "V",
  "suffix": "Engg",
  "lvlId": "P",
  "lvlType": "LAC",
  "acctStatus": "20",
  "enrlDT": "2016-08-29",
  "vrsnId": 1
}

预期输出JSON:

{

  "type": "mbrInfo",
  "csId": 123456789,
  "insTS": "14-07-201911:55",
  "seqId": 1234565,
   "name" : [{
  "title": "Mr",
  "fName": "Amit",
  "mName": "",
  "lName": "V",
  "suffix": "Engg"}],
  "lvlId": "P",
  "lvlType": "LAC",
  "acctStatus": "20",
  "enrlDT": "2016-08-29",
  "vrsnId": 1
}.

目前,我正在使用JOLTtransformJSON处理器和JOLT规范:

[
{
    "operation": "shift",
    "spec": {
      "name": {
        "$": "[#1]",
        "@.title": "[#1].title",
        "@.fName": "[#1].fName",
        "@.mName": "[#1].mName",
        "@.lName": "[#1].lName",
        "@.suffix": "[#1].suffix"
      }
    }
  }
]

但我得到的输出要么是NULL,要么是原始JSON(带有差异规范)。提前感谢。

共有1个答案

宦书
2023-03-14

将所有名称字段放入包含对象的1元素数组中。此JOLT规范将它们放入名称字段中的对象中:

[
  {
    "operation": "shift",
    "spec": {
      "title": "name.title",
      "fName": "name.fName",
      "mName": "name.mName",
      "lName": "name.lName",
      "suffix": "name.suffix",
      "*": "&"
    }
  }
]

…并且此规范将它们放入名称字段中的1元素数组中:

[
  {
    "operation": "shift",
    "spec": {
      "title": "name[0].title",
      "fName": "name[0].fName",
      "mName": "name[0].mName",
      "lName": "name[0].lName",
      "suffix": "name[0].suffix",
      "*": "&"
    }
  }
]

我在输入中看不到任何其他地方来获取数组的索引,所以我只使用了 0

 类似资料:
  • 输入 json : 预期输出: 我想有一个颠簸转换,它可以嵌套很少的田地。

  • 我有一个关于使用jolt将平面json转换成嵌套json的问题。我对jolt很陌生,这是我的意见 我编写了jolt spec,但我没有得到想要的输出 我的预期产出是: 任何震动专家都可以帮助我获得所需的输出。我应该在颠簸中使用多个变换,还是可以在一个震动变压器中获得所需的输出?

  • 所以目前我看到的是这样的: 这是我目前编写的Jolt规范(编辑): 以及转换后的输出: 任何帮助都是非常感谢的。

  • 我只需要使属性元素与 id 处于同一级别。 我只是有一个问题,以复制属性是在同一水平。 这是我的示例JSON 这是我的示例转换。 期望的输出将是

  • 我试图写一个规范来使用jolt转换完成下面的转换。我需要将平面JSON转换成嵌套JSON。 输入数据: 我在将平面JSON转换为嵌套JSON时遇到了一些问题。这里,我希望基于stoptype属性聚合数据,并且需要针对唯一的有效负载进行聚合。我用https://jolt-demo.appspot.com来测试以下内容。 输出: 你能帮我完成这个预期的输出吗?

  • 我遇到了一个问题,使用颠簸转换将平面 JSON 转换为嵌套 JSON。而且我对颠簸转型很陌生。输入和输出详细信息如下。 我的输入: 预期产量