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

Azure Logic App Parse JSON Schema报错「对象缺少必填属性」求助

问题根源

你的报错核心原因是JSON Schema配置与实际返回数据结构不匹配:

  1. 你在Schema的required数组中声明了someCode是每条记录必须包含的字段
  2. 新插入的数据库记录中存在someCode为NULL的情况,SQL连接器默认不会在返回的JSON对象中输出值为NULL的字段键
  3. 报错中path: "[318]"说明是返回的value数组里第319条(数组下标从0开始)记录缺少someCode字段,触发了校验失败
    之前记录少的时候所有记录的someCode都有实际值,所以不会触发报错。
解决方案

你可以根据业务需求选择以下任意一种方案修复:

  • 方案1:调整JSON Schema校验规则,适配可选字段
    把someCode从required数组中移除即可,也可以额外添加default配置指定字段缺失时的默认值,方便后续流程处理。修改后的Schema示例:
{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "@@odata.etag": {
                "type": "string"
            },
            "ItemInternalId": {
                "type": "string"
            },
            "userEmail": {
                "type": "string"
            },
            "someCode": {
                "type": "string",
                "default": ""
            }
        },
        "required": [
            "@@odata.etag",
            "ItemInternalId",
            "userEmail"
        ]
    }
}
  • 方案2:修改SQL查询语句,保证空值字段也返回键
    在查询时用SQL函数把NULL值替换为默认值,强制返回someCode字段,不同数据库语法参考:
    • SQL Server:SELECT userEmail, ISNULL(someCode, '') AS someCode FROM 表名
    • MySQL:SELECT userEmail, IFNULL(someCode, '') AS someCode FROM 表名
    • Oracle:SELECT userEmail, NVL(someCode, '') AS someCode FROM 表名
      修改后所有返回记录都会包含someCode字段,空值时为空白字符串,符合原Schema的校验要求。
  • 方案3:数据库层面加非空约束
    如果业务规则要求someCode必须有值,直接给对应表的someCode字段添加非空约束,禁止插入空值记录,从源头避免问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:06:08