如何为json内容使用表达式语言?

如何为json内容使用表达式语言?,json,apache-nifi,Json,Apache Nifi,我尝试将csv转换为json 我的CSV数据如下 Top Jun Sdas 123 Jul gh 456 Aug-16 Rav 789 Jan-16 Trai 767 现在我使用了以下处理器结构 GetFile-->InferredAvroSchema-->ConvertCSVToAvro-->ConvertAvroToJson-->PutFile. 下面是json的结果 [ {"field_0": "Top

我尝试将csv转换为json

我的CSV数据如下

Top     
Jun        Sdas 123
Jul        gh   456
Aug-16     Rav  789
Jan-16     Trai 767
现在我使用了以下处理器结构

GetFile-->InferredAvroSchema-->ConvertCSVToAvro-->ConvertAvroToJson-->PutFile.
下面是json的结果

[
{"field_0": "Top", "field_1": "", "field_2": null},
{"field_0": "Jun", "field_1": "Sdas", "field_2": 123},
{"field_0": "Jul", "field_1": "gh", "field_2": 456},
{"field_0": "Aug-16", "field_1": "Rav", "field_2": 789},
{"field_0": "Jan-16", "field_1": "Trai", "field_2": 767}
]
现在我需要为“field_0”添加表达式语言,以添加'-16',如果它在值中不存在

例如,第二行的“字段_0”有“Jun”。现在我需要检查“-16”是否存在于字段中,如果不存在,还需要添加

如何将nifi处理器中的表达式语言方法添加到json内容中

还有别的办法吗


感谢并接受任何帮助?

您可以使用多种选项来提供所需的功能

仅使用提供的处理器,您可以使用或检测所需的键和值是否存在,然后使用或可能使用。看起来您的流文件非常小,所以这不应该是一个问题,但请注意,
jolttransfermjson
不会以流方式运行,因此对于大的流文件,这将对内存消耗产生负面影响

如果您对Groovy/Ruby/Jython/Javascript/Lua感到满意,那么您也可以在一个操作中使用。通过Groovy内置的JSON处理(将JSON块快速视为映射对象),您可以在一行中执行检测和默认填充,并非常轻松地将流文件内容写回
ExecuteScript
是一个非常有用且用途广泛的工具,在每个问题上推荐它都会让人感觉像是作弊,但在这种情况下,它确实可能是最简单的解决方案