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

如何使用JSON Schema验证YAML文件中的重复列表项?

能否用JSON Schema验证YAML中的重复列表项?

标准JSON Schema本身无法直接验证列表对象中某个字段的唯一性。

原因在于,JSON Schema的设计基于JSON数据模型,JSON数组允许存在重复元素,内置的uniqueItems关键字仅能校验整个数组元素是否完全一致,无法针对元素内部的特定字段(比如你示例里的key1)做唯一性检查。即便YAML被解析成JSON结构后,也没办法通过标准JSON Schema规则检测key1的重复问题。

可行的替代方案

  • 使用支持扩展的JSON Schema工具:部分工具(如Ajv)允许添加自定义关键字或自定义校验逻辑。比如可以定义一个自定义关键字,遍历数组元素并检查指定字段的唯一性。
  • 解析后自行编写校验逻辑:在YAML解析完成后,通过代码手动检查目标字段的重复情况。以下是Python环境下的示例代码:
import yaml

def check_unique_key1(file_path):
    with open(file_path, 'r') as f:
        data = yaml.safe_load(f)
    key1_values = [item['key1'] for item in data.get('config', [])]
    if len(key1_values) != len(set(key1_values)):
        raise ValueError("config列表中存在重复的key1值")

# 调用示例
check_unique_key1('config.yaml')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:08:15