我想用来自其他处理器的值来更新JSON文件中的属性。下面是我的原始JSON文件。
{
"applicant": {
"applicant-id": null
"full-name": "Tyrion Lannister",
"mobile-number" : "8435739739",
"email-id" : "tyrionlannister_casterlyrock@gmail.com"
},
"product": {
"product-category" : "Credit Card",
"product-type" : "Super Value Card - Titanium"
}
}
以下是我的EvaluavateJsonPath配置,其中我提取了 applicant-id 属性。
下面是我的GenerateFlowFile处理器,它生成一个id值。
现在我需要使用原始JSON中的值(899872120)更新 applicant-id 属性,如下所示。
{
"applicant": {
"applicant-id": 899872120
"full-name": "Tyrion Lannister",
"mobile-number" : "8435739739",
"email-id" : "tyrionlannister_casterlyrock@gmail.com"
},
"product": {
"product-category" : "Credit Card",
"product-type" : "Super Value Card - Titanium"
}
}
我尝试使用MergeContent来合并2个流,我可以在MergeContent处理器之后看到流文件中的 Applicant-Id 属性值。我尝试使用UpdateAttribue更新 Applicant-Id ,但我无法获取更新JSON记录。
以下是我的MergeContent配置。
我有什么遗失的吗?
答案 0 :(得分:2)
从NiFi 1.2.0开始,JoltTransformJSON处理器支持NiFi表达式语言,因此,如果您在属性“Applicant-id”中拥有您的id值,则可以在默认值中使用它 JOLT规范:
{
"applicant": {
"applicant-id": "${Applicant-id}"
}
}
这应该将您的输入JSON转换为您想要的输出JSON。