Apache nifi JoltTransferMJSON-在不删除属性的情况下提取属性

Apache nifi JoltTransferMJSON-在不删除属性的情况下提取属性,apache-nifi,Apache Nifi,首先,我是nifi的新手,所以请随意改变你所看到的一切 我用的是JottTransferorMJSON。我的输入JSON是下一个: { "ID": "123", "Text1": "aaa", "Text2": "aaa", "Text3": "aaa" } [{ "operation": "shift", "spec": { "*": "data.&" } },{ "operation": "default", "spec": { "dataset": "${data

首先,我是nifi的新手,所以请随意改变你所看到的一切

我用的是JottTransferorMJSON。我的输入JSON是下一个:

{
"ID": "123",
"Text1": "aaa",
"Text2": "aaa",
"Text3": "aaa"
}
[{
"operation": "shift",
"spec": {
    "*": "data.&"
}
},{
"operation": "default",
"spec": {
    "dataset": "${dataset:toLower()}",
    "date": "${date}"
}
}]
我需要下一个输出:

{
"data": {
    "ID": "123",
    "Text1": "aaa",
    "Text2": "aaa",
    "Text3": "aaa"
},
"date": "",
"dataset": "",
"ID": "123"
}
var date和dataset是流中的属性,因此这里没有问题,问题是我需要提取ID的值,在本例中是123,但这只是一个示例,没有删除de field data中的ID。我的Jolt规范是下一个:

{
"ID": "123",
"Text1": "aaa",
"Text2": "aaa",
"Text3": "aaa"
}
[{
"operation": "shift",
"spec": {
    "*": "data.&"
}
},{
"operation": "default",
"spec": {
    "dataset": "${dataset:toLower()}",
    "date": "${date}"
}
}]
除ID字段外,我还有所有的字段,我不知道怎么做:(

感谢您尝试以下规格:

输出:


该规范的问题是您从“数据”中删除了字段ID,我需要“数据”和“外部”(带日期和数据集)中的字段ID@Carlos,请检查我的更新答案,
“ID”:[“ID”,“data.ID”]
这将解决问题,并将
ID
字段保留为默认值,也保留在
数据结构中。