You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解析JSON后向Azure Event Hub发送Blob数据遇序列化问题求助

解决Azure Logic App中JArray无法发送到Event Hub的问题

核心问题

Event Hub的Send事件操作不支持直接发送Newtonsoft.Json.Linq.JArray类型,且转换过程中若处理不当会触发空值解析错误。

可行解决方案

1. 先校验数组非空

添加条件判断步骤,检查body('Parse_JSON')?['records']是否为非空数组,避免后续转换因空值触发Event received is null错误。

2. 正确转换数组格式

Event Hub支持JSON字符串或Base64编码的二进制负载,推荐两种可靠转换方式:

  • 方式一:序列化为标准JSON字符串发送
    使用json()函数还原标准JSON结构,避免string()生成的转义字符串导致解析失败,表达式:
    @{json(string(body('Parse_JSON')?['records']))}
    
  • 方式二:转为Base64编码的二进制负载
    先将数组转为标准JSON,再编码为Base64,适合二进制传输场景,表达式:
    @{base64(json(string(body('Parse_JSON')?['records'])))}
    

3. 指定内容类型

在Send Event操作的Content Type字段设置为application/json,确保Event Hub正确识别负载格式。

备选方案:逐个发送事件

若records数组中的每个元素是独立业务事件,可使用For Each循环遍历数组,将单个record作为事件发送到Event Hub,既规避数组类型问题,也更贴合Event Hub的事件粒度设计。

内容的提问来源于stack exchange,提问作者Qeller White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:32:39