Nifi震动规格将阵列弄平

时间:2018-09-04 02:32:35

标签: json apache-nifi jolt

我有数组的json输入:

{
    "id": 3,
    "name": "ROOT",
    "mylist": [{
        "id": 10,
        "info": "hello"
        },
        {
        "id": 11,
        "info": "world"
        }
    ]
}

我希望将其转换为“ flat” json,如下所示:

{
    "id": 3,
    "name": "Root",
    "mylist[0].id": 10,
    "mylist[0].info": "hello",
    "mylist[1].id": 11,
    "mylist[1].info": "world"    
}

如何通过JoltTransformJSON规范实现这一目标?

1 个答案:

答案 0 :(得分:1)

必须逃避通常会触发转移以添加子对象的所有事物。

[
  {
    "operation": "shift",
    "spec": {
      "id": "id",
      "name": "name",
      "mylist": {
        "*": {
          "id": "myList\\[&1\\]\\.id",
          "info": "myList\\[&1\\]\\.info"
        }
      }
    }
  }
]

这是同一件事,但“更通用”。

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "mylist": {
        "*": {
          "*": "&2\\[&1\\]\\.&"
        }
      }
    }
  }
]

请注意,您仍然必须告诉我,“ mylist”是需要介入的东西,即没有Shift规范可以使所有Json扁平化。