在wso2 stream processor/regex中将文本格式转换为json,以便在wso2sp中进行自定义文本Map

fxnxkyjh  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(383)

我有一个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中的各个属性。

bfnvny8b

bfnvny8b1#

因为正则表达式由“,”组成,所以需要用3个双引号转义,如下所示,

regex.A = """(?:"code":")(.*?)(?:")""",

相关问题