NIFI:使用EvaluateJsonPath处理器从JSON数组中提取特定值?

NIFI:使用EvaluateJsonPath处理器从JSON数组中提取特定值?,json,apache-nifi,Json,Apache Nifi,我有以下内容,我想从包含所有UpdateCounter的上下文值中提取3。以下是我尝试过的,但没有成功: $.counters.aggregateSnapshot.counters.[context=="All UpdateCounter\'s"].valueCount 可能的NIFI表达式是什么?1-SplitJson -关于$.Conters 2-评估JSONPATH $.id $.context $.name $.valueCount 美元价值 3-路由属性 路线规则: ${contex

我有以下内容,我想从包含
所有UpdateCounter
的上下文值中提取
3
。以下是我尝试过的,但没有成功:

$.counters.aggregateSnapshot.counters.[context=="All UpdateCounter\'s"].valueCount
可能的NIFI表达式是什么?

1-SplitJson -关于$.Conters 2-评估JSONPATH

$.id

$.context

$.name

$.valueCount

美元价值

3-路由属性

路线规则:

${context:contains('All UpdateCounter')}

${context:equals('All UpdateCounter')}

4-提取文本-如果您希望它像csv一样


${id}、${context}、${name}、${valueCount}、${value}

尽管这是一个老问题,但未来的读者可能会受益:那怎么办?它只使用一个处理器并返回您需要的:

颠簸变换DSL:Shift

颠簸规范

[
  {
    "operation": "shift",
    "spec": {
      "counters": {
        "aggregateSnapshot": {
          "counters": {
            "*": {
              "*": {
                "context": {
                  "All UpdateCounter's": {
                    "@3": "results"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
]
结果:

{
  "results" : {
    "9" : {
      "id" : "xxxxxxx",
      "context" : "All UpdateCounter's",
      "name" : "flag",
      "valueCount" : 3,
      "value" : "3"
    }
  }
}
使用以下设置进行测试(web应用程序不允许我永久链接示例,因此这里有一张图片):