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

在JSON Schema中定义title/description属性遇WebStorm校验错误,如何解决?

问题描述

我定义了一个包含description和title属性的JSON Schema,代码如下:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "description": "a description"
    },
    "title": {
      "type": "string",
      "description": "a title"
    }
  }
}

WebStorm的Schema校验器报错:类型不兼容:需要字符串,实际为对象。请问该如何正确定义这些属性?或是校验器存在bug?

解决方案

这不是校验器的bug,是JSON Schema的元数据关键字与自定义属性命名冲突导致的识别混淆:

  • JSON Schema中的title和description是顶级元数据关键字,默认用来描述Schema本身,WebStorm的校验器会优先把它们识别为元数据(要求是字符串类型),而你在properties里将它们定义为对象类型的属性,因此触发类型不兼容错误。

可以通过两种方式解决:

  1. 明确区分元数据与自定义属性(推荐)
    在Schema顶级添加元数据关键字,明确描述Schema本身,同时保留properties里的自定义属性定义:
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "title": "自定义对象Schema",
      "description": "包含描述和标题属性的业务对象",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "业务对象的描述文本"
        },
        "title": {
          "type": "string",
          "description": "业务对象的标题文本"
        }
      }
    }
    
  2. 调整WebStorm校验设置
    进入Settings > Languages & Frameworks > Schemas and DTDs > JSON Schema Mappings,检查当前文件关联的Schema规则,确保没有冲突;或者临时将文件标记为纯文本(右键文件 > Mark as Plain Text),处理完成后再恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:57:07