我正在从以下JSON / AVRO模式生成随机数据:
{
"type" : "record",
"namespace" : "test",
"name" : "metro_data",
"fields": [
{
"name" : "PersonID",
"type" : "int"
},
{
"name" : "TripStartStation",
"type" : {
"type" : "enum",
"name" : "StartStation",
"symbols" : ["WIEHLE_RESTON_EAST", "SPRING_HILL", "GREENSBORO"]
}
},
{
"name" : "TripEndStation",
"type" : {
"type" : "enum",
"name" : "EndStation",
"symbols" : ["WIEHLE_RESTON_EAST", "SPRING_HILL", "GREENSBORO""]
}
}
]
}
上面的模式生成了这个,例如:
[ {
"PersonID" : -1089196095,
"TripStartStation" : "WIEHLE_RESTON_EAST",
"TripEndStation" : "SPRING_HILL"
}
我想获取模式的PersonID
号,并将其添加到“属性”中。例如,这张照片中的空白需要提取从流程生成的实际PersonID编号:
我尝试将EvaluateJSONPath
用于以下配置,这就是我最终在empty string set
下使用PersonalID
的原因:
我的下一个处理器是UpdateAttribute
吗?不确定如何提取该内容。谢谢!
答案 0 :(得分:3)
您要拥有 json消息数组(例如:[...]),并且需要使用<<将json数组拆分成单独的流文件 strong> SplitJson 处理器,拆分表达式为 $。*
然后使用 EvaluateJsonProcessor 提取 PersonID 值作为属性。
流量:
--> SplitJson --> EvaluateJsonPath--> other processors
有关更多详细信息,请参见关于同一问题的this链接。