JoltTransformJSON-提取属性并将其删除

时间:2019-06-16 19:45:28

标签: apache-nifi

首先,我是nifi的新手,因此随时更改您所看到的一切。

我正在使用JoltTransformJSON。我输入的JSON是下一个:

{
"ID": "123",
"Text1": "aaa",
"Text2": "aaa",
"Text3": "aaa"
}

我需要下一个输出:

{
"data": {
    "ID": "123",
    "Text1": "aaa",
    "Text2": "aaa",
    "Text3": "aaa"
},
"date": "",
"dataset": "",
"ID": "123"
}

var日期和数据集是流中的属性,因此这里没有问题,问题是我需要提取ID的值,在这种情况下为123,但这只是一个示例,未删除字段数据中的ID 。下一个是我的震动规格:

[{
"operation": "shift",
"spec": {
    "*": "data.&"
}
},{
"operation": "default",
"spec": {
    "dataset": "${dataset:toLower()}",
    "date": "${date}"
}
}]

并且除了ID字段之外,我都拥有该字段,我不知道该怎么做:(。

谢谢

1 个答案:

答案 0 :(得分:1)

尝试以下规格:

[{
  "operation": "shift",
  "spec": {
    "*": "data.&",
    "ID": ["ID", "data.ID"]
  }
}, {
  "operation": "default",
  "spec": {
    "dataset": "${dataset:toLower()}",
    "date": "${date}"
  }
}]

输出:

{
  "ID" : "123",
  "data" : {
    "ID" : "123",
    "Text1" : "aaa",
    "Text2" : "aaa",
    "Text3" : "aaa"
  },
  "date" : "${date}",
  "dataset" : "${dataset:toLower()}"
}