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

如何基于外部非Schema数据或文件夹名实现JSON Schema自动补全提示

核心结论

原生JSON Schema标准本身不支持直接读取外部非Schema普通数据文件、扫描文件夹文件名的能力,但可以通过预生成动态JSON Schema的方案,完全实现你需要的编写时语法提示、自动补全需求,具体实现方案如下:

场景1:基于其他数据文件限定属性名/取值

  • 编写轻量的自动化脚本(可选择Python、Node.js等任意熟悉的语言),监听文件1的更新,一旦文件内容变动,自动读取其Attributes下的属性列表,生成适配文件2的JSON Schema,示例生成的Schema内容如下:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "Influence": {
      "type": "object",
      "propertyNames": {
        "enum": ["Attribute1", "Attribute2"]
      },
      "additionalProperties": {
        "type": "number",
        "description": "属性对应的影响力数值"
      }
    }
  }
}
  • 在编辑器(比如VS Code)的YAML插件中配置Schema关联,将生成的Schema与文件2的路径绑定,编写文件2时编辑器会自动基于Schema给出属性名补全、输入错误提示。

场景2:基于文件夹文件名限定取值

  • 同样使用自动化脚本实现:脚本扫描指定Events文件夹下所有YAML/JSON文件,提取不带后缀的文件名生成枚举列表,写入对应JSON Schema的DefaultEvents字段约束中,示例生成的Schema内容如下:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "DefaultEvents": {
      "type": "array",
      "items": {
        "enum": ["event1", "event2"],
        "description": "仅可填写Events文件夹下存在的事件文件名(不含后缀)"
      }
    }
  }
}
  • 可配合文件监听工具、Git钩子实现自动更新:只要Events文件夹下的文件有增删改,就自动触发脚本重新生成Schema,无需人工操作,编写时的补全提示会实时同步最新的文件名列表。

补充说明

主流编辑器的YAML/JSON插件(比如VS Code的Red Hat YAML插件)都原生支持基于JSON Schema的实时补全能力,只要预生成的Schema是最新的,编写过程中就会自动弹出候选值、语法校验提示,完全满足你的核心需求。

内容的提问来源于stack exchange,提问作者Viacheslav Rud'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:01