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

在Mule中能否用同一JSON Schema验证单请求中的JSON请求数组?

能否用同一JSON Schema验证单个请求中的JSON数组?

当然可以!其实只需要对你现有的JSON Schema做一点点调整,就能轻松验证包含多个对象的JSON数组,完全不用重新编写一套验证规则。

先回顾一下你用来验证单个对象(比如{"name":"tom"})的基础Schema:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["name"]
}

要验证像[{"name":"tom"},{"name":"jerry"},{"name":"jhon"}]这样的数组,只需要把外层的type改成"array",然后通过items字段指定数组中每个元素必须遵循的规则——也就是你上面写的单个对象的验证逻辑。修改后的Schema如下:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "minLength": 1
      }
    },
    "required": ["name"]
  },
  // 可选:按需添加数组长度限制,比如至少1个元素,最多10个
  "minItems": 1,
  "maxItems": 10
}

关键说明:

  • type: "array":告诉验证器当前要校验的是一个数组类型的JSON
  • items:定义数组中每个元素的验证规则,这里直接复用了你原来的单个对象Schema,这样数组里的每一项都会被严格按照name字段的规则校验
  • 可选的minItems/maxItems:可以用来限制数组的长度范围,避免传入空数组或者过大的数组,根据你的业务需求决定是否添加

这样调整后,同一个核心的对象验证逻辑既可以用于单个请求,也可以用于数组请求,非常灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:07:43