如何通过Zeebe Kafka Connector发送JSON至Kafka并阻止格式转换?
解决Zeebe Kafka Connector自动转换JSON格式的问题
这种格式转换是因为Zeebe Kafka Connector默认会将流程变量序列化为Zeebe特有的键值对格式,而非标准JSON。以下是具体解决方法:
将JSON存储为字符串类型变量
不要直接在流程中存储JSON对象,而是将JSON以字符串形式保存。比如在流程中定义变量时,直接赋值为:"{\"id\": \"1234\"}"或者通过脚本任务将现有JSON对象转为字符串。
配置Connector直接引用原始字符串变量
在BPMN的Kafka Connector配置中,给message.value字段添加=前缀,指定直接引用变量的原始值,避免Zeebe解析变量格式:message.value = =myJsonStringVar这里的
myJsonStringVar是你存储JSON字符串的变量名。调整连接器序列化配置
如果使用配置文件(如application.yaml)管理Connector,确保指定字符串序列化器,让连接器直接发送原始字符串:zeebe: kafka: producer: value-serializer: org.apache.kafka.common.serialization.StringSerializer用脚本任务预处理变量
如果流程中已有JSON对象变量,可添加脚本任务将其转为字符串:- FEEL脚本示例:
stringify({id: "1234"}) - JavaScript脚本示例:
JSON.stringify(vars.get("myJsonObject"))
之后将生成的字符串变量传给Kafka Connector即可。
- FEEL脚本示例:
完成配置后,发送到Kafka的消息就会保持标准JSON格式{"id": "1234"},不会再出现冒号转等号、双引号转单引号的问题。
内容的提问来源于stack exchange,提问作者mohammad amin rahimi
相关产品推荐
相关产品推荐

