Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用NiFi将平面JSON转换为嵌套JSON_Json_Apache Nifi_Jolt - Fatal编程技术网

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

如何使用NiFi将平面JSON转换为嵌套JSON,json,apache-nifi,jolt,Json,Apache Nifi,Jolt,输入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",

输入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
}.
目前,我正在使用JOLT TransferMJSON处理器,其JOLT规格如下:

[
{
    "operation": "shift",
    "spec": {
      "name": {
        "$": "[#1]",
        "@.title": "[#1].title",
        "@.fName": "[#1].fName",
        "@.mName": "[#1].mName",
        "@.lName": "[#1].lName",
        "@.suffix": "[#1].suffix"
      }
    }
  }
]
但我得到的不是空值,就是以diff spec作为输出的原始JSON。
提前感谢。

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

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


我在输入中看不到任何其他位置可以将索引放入数组,所以我只使用了0。

Oscar,如果您仔细观察,您会发现输入json是一个平面json,而输出json是嵌套的。@mattyb,您能帮我回答这个问题吗
[
  {
    "operation": "shift",
    "spec": {
      "title": "name.title",
      "fName": "name.fName",
      "mName": "name.mName",
      "lName": "name.lName",
      "suffix": "name.suffix",
      "*": "&"
    }
  }
]
[
  {
    "operation": "shift",
    "spec": {
      "title": "name[0].title",
      "fName": "name[0].fName",
      "mName": "name[0].mName",
      "lName": "name[0].lName",
      "suffix": "name[0].suffix",
      "*": "&"
    }
  }
]