如何将几十个字段转换为Nifi属性?

问题描述 投票:0回答:2

我有几十个字段的json,如何轻松地将其转换为nifi属性?

我用了EvaluateJsonPath但是需要一一输入值。

我将在 Phoenix DB 中使用这些属性,当我使用 ConvertJsontoSQL 时它不起作用...

你能帮忙解决这个问题吗?

JoltTransformJSON 示例内容如下;

{
  "AAAA": "AAAA",
  "BBBB": "BBBB",
  "CCCC": "CCCC",
  "DDDD": "DDDD",
  "EEEE": "EEEE",
  "FFFF": "FFFF",
  "GGGG": "GGGG",
  "HHHH": "HHHH",
  ...
  ...
  ...

}

我想将json字段定义为nifi属性。我不想用EvaluateJsonPath一一输入。

apache-nifi
2个回答
2
投票

编辑:我找到了 ExecuteGroovyScript 的这个脚本并处理它。

import org.apache.commons.io.IOUtils
import java.nio.charset.*
def flowFile = session.get();
if (flowFile == null) {
    return;
}
def slurper = new groovy.json.JsonSlurper()
def attrs = [:] as Map<String,String>
session.read(flowFile,
    { inputStream ->
        def text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
        def obj = slurper.parseText(text)
        obj.each {k,v ->
           attrs[k] = v.toString()
        }
    } as InputStreamCallback)
flowFile = session.putAllAttributes(flowFile, attrs)
session.transfer(flowFile, REL_SUCCESS)

0
投票

我有一个问题,你的 JSON 是否有空字段?那你现在怎么样了?

© www.soinside.com 2019 - 2024. All rights reserved.