我有一个wso2流处理器代码,其中我以文本格式接收kafka的输入,因为debezium mongodb connector给出了一个很长的输出,并且它不是一个有效的json来发送给wso2。因此,我将它作为文本接收,并计划使用regex只获取我需要的部分有效负载。我不知道如何将这个文本格式转换成json,这样我就可以将它发送到另一个kafka流并在这个流上进行自定义jsonMap。
我正在尝试的另一种方法是:我也在尝试文本的自定义Map:
@source(type='kafka',
topic.list='demo',
partition.no.list='0',
threading.option='single.thread',
group.id="group",
bootstrap.servers='localhost:9092',
@map(type='text',fail.on.missing.attribute='false', regex.A='(.*)',
@attributes(id = 'A[0]')))
define stream transactionstream1(id string);
示例json:
{"_id":{"$oid":"342fs"},"code":"ffssefse","name":"test1","desc":"description1","transRefId":"esfef3423des","amount":1000,"currency":"INR","requestId":null,"redeemedCashcode":null,"sender":{"id":"5d9c0dedcf71a09664922042","name":"tat","phone":"3242324"}}
从上述json获取代码属性的正则表达式是: (?:"code":")(.*?)(?:")
但是wso2 regex.a不接受这个。
这就是为什么我现在正在以文本格式获取整个数据,并尝试转换为json
有别的办法吗?或者在wso2流处理器中编写regex的其他约定?
我需要从wso2sp中上述json的文本中获取定制Map中的各个属性。
1条答案
按热度按时间bfnvny8b1#
因为正则表达式由“,”组成,所以需要用3个双引号转义,如下所示,