在apache nifi中从嵌套json中提取值

时间:2017-09-26 07:29:47

标签: java json regex apache-nifi jolt

我已经逃过了json数据流(从ConvertAvroToJSON处理器驱动),如下所示:

{"data": "{\"created_at\":\"Sun Sep 24 11:10:52 +0000 2017\"}"}

我只需要“json”值,就像这样[在unescapeJson之后]:

{"created_at":"Sun Sep 24 11:10:52 +0000 2017"}

我尝试了JoltTransformJSON和EvaluateJsonPath解决方案,但他们两个都给我这个, {“”} 在它的开头和尾端:

{"{"created_at":"Sun Sep 24 11:10:52 +0000 2017"}"}

我该怎么办?

Jolt Spec:

  

[{“operation”:“shift”,“spec”:{       “数据”:{         “*”:“&”       }}}}

EvaluateJsonPath:

  

$ .. *

2 个答案:

答案 0 :(得分:2)

EvaluateJsonPath$.data表达式

一起使用

如果您的流文件内容中有{"data": "{\"created_at\":\"Sun Sep 24 11:10:52 +0000 2017\"}"}

它将用以下数据替换内容:

{"created_at":"Sun Sep 24 11:10:52 +0000 2017"}

这里是处理器的所有参数

enter image description here

答案 1 :(得分:1)

您需要2个步骤。首先,将内部json提取到流内容中。之后,您可以从此json流内容访问json属性。

第一步: First Step

第二步 Second Step

流视图

Flow view of this actions