我有几十个字段的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一一输入。
编辑:我找到了 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)
我有一个问题,你的 JSON 是否有空字段?那你现在怎么样了?