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

如何使用‘#number’规则验证Schema?解决类型不匹配问题

关于使用#number规则进行Schema验证的问题

问题详情

  • 根路径$校验失败:名称为'httpCode'的字段匹配失败(MAP:MAP)
  • 路径$.httpCode校验失败:数据类型不匹配(STRING:NUMBER)
  • 预期校验规则:#number
  • 实际响应值:206

Schema定义

def SchemaAccountProducts = 
"""
{
"httpCode": "#number",
"httpMessage": "#string",
"timestamp": "#string",
"moreInformation": "#string",
"userFriendlyError": "#string",
"response": {
"cardList": "#(SchemaCardList)",
"accountList": "#(SchemaAccountList)",
"creditList": "#(SchemaCreditList)"
}
}
"""

响应内容

{"httpCode":206,"httpMessage":"PARTIAL_CONTENT"}

解决方案

问题出在Schema中httpCode的规则写法错误:你把#number用双引号包裹了,这会让校验器将其识别为字符串类型校验规则,但实际响应里的httpCode是数字类型的206,因此触发了类型不匹配的错误。

修正方法很简单:去掉#number周围的双引号,让规则直接指定字段的数字类型校验要求。修正后的httpCode字段定义如下:

"httpCode": #number

完整修正后的Schema:

def SchemaAccountProducts = 
"""
{
"httpCode": #number,
"httpMessage": "#string",
"timestamp": "#string",
"moreInformation": "#string",
"userFriendlyError": "#string",
"response": {
"cardList": "#(SchemaCardList)",
"accountList": "#(SchemaAccountList)",
"creditList": "#(SchemaCreditList)"
}
}
"""

这样校验器就能正确识别httpCode字段需要是数字类型,与响应中的206匹配,通过校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:25:26