我有一个WSO2流处理器代码,在该代码中,我以文本格式接收来自kafka的输入,因为debezium连接器提供了一个很长的输出,并且发送到wso2不是一个有效的json。因此,我收到它作为文本,并计划使用regex,以获得我需要的部分有效载荷。我无法弄清楚如何将这种文本格式转换为json,这样我就可以将其发送到另一个kafka流,并在此上进行自定义的json映射。
我正在尝试的另一种方法是:我还在尝试文本的自定义映射:
@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"}}从上面获取代码属性的Regex是:,但是wso2 regex.A不接受这一点。
这就是为什么目前我正在以文本格式获取整个数据,并试图转换为json。
对此还有别的办法吗?还是在wso2流处理器中编写regex的其他约定?
我需要从wso2sp中上述json的文本中获取自定义映射中的各个属性。
发布于 2019-12-10 09:34:02
由于regex由",您需要使用3个双引号转义如下,
regex.A = """(?:"code":")(.*?)(?:")""",https://stackoverflow.com/questions/59260896
复制相似问题