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

在Logic App中遍历JSON数组读取特定值及空值报错排查

解决Logic App遍历ws:Worker数组返回Null的思路
  • 检查JSON结构是否为数组
    XML转JSON时,若原XML仅含单个<ws:Worker>节点,转换结果会是对象而非数组,导致@body('Parse_JSON_FIle')?['ws:Worker']返回单个对象而非数组,触发For_each报错。可通过以下两种方式处理:

    1. 修改Parse_JSON的Schema,将ws:Worker定义为数组类型(即使单条记录也强制解析为数组)
    2. 在For_each的输入表达式中手动转换:@json(concat('[', string(body('Parse_JSON_FIle')?['ws:Worker']), ']'))
  • 核对键名与命名空间处理
    XML转JSON时,命名空间前缀可能被修改或丢失:

    1. 用Compose动作输出body('Parse_JSON_FIle')的实际内容,确认键名是ws:Worker还是无前缀的Worker
    2. 若使用Logic App的XML to JSON动作,检查是否开启了保留命名空间的配置,避免前缀被自动移除
  • 处理空节点场景
    若原XML中无ws:Worker节点,需添加空值判断,避免返回Null:
    使用表达式@if(empty(body('Parse_JSON_FIle')?['ws:Worker']), createArray(), body('Parse_JSON_FIle')?['ws:Worker']),空节点时生成空数组供For_each遍历

  • 验证Parse_JSON的Schema正确性
    若Schema中ws:Worker被定义为对象类型,即使实际JSON是数组也会解析错误。可基于Parse_JSON的实际输出重新生成Schema,确保ws:Worker的类型为array

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:22:40