在 WSO2 流处理器/正则表达式中将文本格式转换为 json 以在 WSO2SP 中自定义文本映射

Convert text format to json in WSO2 stream processor/ regex for custom text mapping in WSO2SP

我有一个 wso2 流处理器代码,我从 kafka 以 text 格式接收 输入,因为 debezium mongodb 连接器给出了一个冗长的输出,它 不是一个有效的 json 可以发送到 WSO2。因此,我以文本形式接收它,并计划使用正则表达式来仅获取我需要的有效负载部分。 我无法弄清楚如何将此文本格式转换为 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"}}

从上面获取代码属性的正则表达式 json 是 : (?:"code":")(.*?)(?:") 但 wso2 regex.A 不接受这个。

这就是为什么目前我正在获取文本格式的全部数据并尝试转换为 json

还有其他方法吗?或 在 wso2 流处理器中编写 regex 的其他一些约定?

我需要在 wso2sp 中从上述 json 的文本中获取自定义映射中的各个属性。

由于您的正则表达式由 " 组成,因此您需要使用 3 个双引号将其转义,如下所示,

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