如何将文本文件流转换为JSON文件流

z9smfwbn  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(144)

我使用apache nifi,我有一个来自splitText处理器的文本文件流,内容如下,2行:第一行是id,第二行是word。例如:

1
games

字符串
我需要从这个文件中生成json,例如:

{
"id": 1,
"word": "games"
}


我尝试使用updateAttribute将行中的值输入到文件属性中,但我不知道如何访问第一行和第二行,因为我知道它们由“\n”字符分隔,但我不知道如何准确地获取第一行来创建id,以及如何获取第二行作为word属性。如果我可以创建属性,然后我可以使用AttributesToJSON从属性中生成json
提前感谢您的合作!

ffvjumwh

ffvjumwh1#

你可以使用ExtractGrok处理器,它很适合阅读一些非结构化数据并生成json输出。你可以在这里阅读更多关于Grok表达式的信息:
GrokExperssio
对于你的例子,我使用了以下表达式:

%{INT:id}\n%{WORD:word}

字符串


的数据
这给了我以下json输出:

{"id":"1","word":"games"}


你可以使用jolt transformation来将id转换为integer:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "id": "=toInteger(@(1,id))"
    }
  }
]


希望有帮助

相关问题