HTTP 400: Invalid JSON payload received. Unknown name "patternProperties" at 'to...

2026年03月10日 11:12 processing

错误信息

HTTP 400: Invalid JSON payload received. Unknown name "patternProperties" at 'tools[0].function_declarations[3].*.properties[4].value': Cannot find field.

AI 解决方案

报错分析报告

1.错误翻译


原文:Invalid JSON payload received. Unknown name "patternProperties" at 'tools[0].function_declarations[3].*.properties[4].value': Cannot find field.
译文:收到无效的JSON负载。在'tools[0].function_declarations[3].*.properties[4].value'处存在未知名称"patternProperties":找不到该字段。

2. 原因分析


  • 根本原因:发送的JSON数据中包含了目标接口不支持的字段名patternProperties

  • 具体位置tools数组第0个元素的function_declarations第3个子项 → 某对象的properties数组第4个元素 → value字段内存在patternProperties键。

  • 上下文:接口JSON Schema未定义该字段,导致解析失败。
  • 3.解决方案


    删除或替换JSON中patternProperties字段(以常见场景为例):
    {
      "tools": [
        {
          "function_declarations": [
            // ... 其他声明 ...
            {
              // ... 其他属性 ...
              "properties": [
                // ... 前3个属性 ...
                {
                  "value": {
                    // ❌ 移除或替换以下无效字段
                    // "patternProperties": { /* 原内容 */ },
                    "type": "object", // 示例:替换为合法字段
                    "required": ["key"]
                  }
                }
              ]
            }
          ]
        }
      ]
    }
    

    4. 预防措施


  • Schema前置验证:使用[JSON Schema Validator](https://www.jsonschemavalidator.net/)或API文档提供的Schema,提前校验JSON合法性。

  • 字段白名单检查:对照接口文档确认允许的字段名,避免引入未定义键(如patternProperties常见于JSON Schema自身,而非业务 payload)。
  • 推荐工具:Postman(请求前Schema验证)、VS Code插件「JSON Schema Validator」。