regex - 在 WSO2 流处理器/正则表达式中将文本格式转换为 json,以便在 WSO2SP 中进行自定义文本映射
问题描述
我有一个 wso2 流处理器代码,我从 kafka以文本格式接收输入,因为 debezium mongodb 连接器给出了一个冗长的输出,并且它不是发送到 WSO2 的有效 json。因此,我将其作为文本接收,并计划使用正则表达式来仅获取我需要的有效负载部分。我无法弄清楚如何将此文本格式转换为 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 流处理器中编写正则表达式的其他约定?
我需要从 wso2sp 中的上述 json 文本中获取自定义映射中的各个属性。
解决方案
由于您的正则表达式由“组成,因此您需要使用 3 个双引号将其转义,如下所示,
regex.A = """(?:"code":")(.*?)(?:")""",
推荐阅读
- reactjs - 如何在反应返回()中访问对象
- ms-word - 在 Office 365 Online 中创建的 docx 文件在导出图像时与 pandoc 的行为不同
- c++ - 确定与其他 2D 矢量相比,2D 矢量面向哪个方向
- javascript - 如何将元素推送到 d3.json 对象之外的数组中?
- json - ElasticSearch 文档中的数组计数
- python - Python 2.7 将特殊字符转换为 utf-8 字节
- django - Django Password Reset Confirm 错误(自定义用户模型)
- mysql - 如何仅安装特定的 mysql 客户端功能
- html - 如何使用 SCSS 变量创建线性渐变?
- kotlin - Kotlin 值类与内联类有何不同?