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

Azure逻辑应用中从JSON数组取嵌套对象并在Select动作Map字段传递异常

Azure逻辑应用Select动作动态Map字段异常排查方案

问题场景

在Azure逻辑应用中使用**Select(数据操作)**动作解析JSON,目标是传入SharePoint列表列的动态JSON到Map字段,实现遍历列表并提取指定列数据。
硬编码如下JSON到Map字段时,可正常返回预期结果:

{
    "Approval": "@{item()?['Approved']}",
    "Approved By": "@{item()['Approved_x0020_By']['DisplayName']}",
    "Beer Product": "@{item()['Coke_x0020_Product']['Value']}"
}

但传入Parse_JSON动作输出的动态表达式时,结果不符合预期,需排查原因。

排查与解决步骤

  • 核对Parse_JSON输出结构
    确保Parse_JSON输出的JSON结构和硬编码格式完全一致:键名需带双引号,表达式需正确包裹在@{}中。若输出存在未转义字符串、嵌套错误,会导致Select无法解析表达式。
  • 验证动态内容的实际渲染值
    在逻辑应用中添加Compose动作,将Parse_JSON的动态输出传入,运行后查看Compose结果,确认是否和硬编码的JSON文本完全匹配。若存在转义字符(如\"代替")或表达式被错误转义(如@@{item()...}),会导致Select无法识别表达式。
  • 确认数据源上下文一致性
    硬编码时使用的SharePoint列表item()上下文,需和动态Map使用的数据源上下文保持一致。若动态Map来自其他Parse_JSON输出,其item()上下文与SharePoint列表上下文不匹配,会导致表达式取值失败。
  • 调整表达式传入方式
    逻辑应用对动态传入的JSON会按文本处理,不会自动解析其中的@{}表达式。硬编码时是直接输入带表达式的JSON,逻辑应用会主动解析;动态传入时,需改用嵌套表达式构建Map对象,而非直接传入Parse_JSON输出。例如:
    select(
      outputs('SharePoint_Get_items')?['body/value'],
      createObject(
        'Approval', item()?['Approved'],
        'Approved By', item()['Approved_x0020_By']['DisplayName'],
        'Beer Product', item()['Coke_x0020_Product']['Value']
      )
    )
    
    若需动态定义列,可结合Parse_JSON的输出字段构建对象:
    select(
      outputs('SharePoint_Get_items')?['body/value'],
      createObject(
        outputs('Parse_JSON')?['body/ApprovalKey'], item()?[outputs('Parse_JSON')?['body/ApprovalField']],
        outputs('Parse_JSON')?['body/ApprovedByKey'], item()[outputs('Parse_JSON')?['body/ApprovedByField']]['DisplayName']
      )
    )
    

内容的提问来源于stack exchange,提问作者G KAMESWAR RAO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:26:18