我有以下JSON structure,我想从包含3
的上下文中的值中提取All UpdateCounter's
。以下是我尝试过的,但它不起作用:
$.counters.aggregateSnapshot.counters.[context=="All UpdateCounter\'s"].valueCount
可能的NIFI表达是什么?
答案 0 :(得分:2)
1 - SplitJson - 关于$ .Conters 2 - EvaluateJsonPath
$。ID
$。上下文
$。名称
$。valueCount
$。值
3 - RouteonAttribute
路线规则:
$ {context:contains('All UpdateCounter \'s')}
或
$ {context:equals('All UpdateCounter \'s')}
4 - 提取文字 - 如果你想要它像csv
$ {ID},$ {上下文},$ {名称},$ {valueCount},$ {值}
答案 1 :(得分:1)
即使这是一个古老的问题,未来的读者也可以从中受益:JoltTransformJSON呢?它仅使用一个处理器并返回您需要的内容:
震动转换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"
}
}
}
使用以下设置进行测试:Jolt Transform Demo(Web应用程序不允许我永久链接该示例,因此下面是图片):