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

如何在JSON Schema中识别带URL URI的子模式及路径变更后的识别

如何在JSON Schema中识别带URL/URI的子模式(父级不在根路径的情况)

首先明确核心规则:JSON Schema中,子模式的$id(相对URI形式)是基于父级模式的完整URI来解析的,完全遵循RFC 3986的相对URI解析标准,和父级是否在根路径无关。

针对你给出的示例:

{
  "$id": "http://example.com/some/path/root.json",
  "definitions": {
    "B": {
      "$id": "other.json"
    }
  }
}

我们一步步解析子模式B的绝对URI:

  1. 父级(根模式)的基础URI是http://example.com/some/path/root.json,这是一个指向具体文件的URI。
  2. 子模式B的$id是相对路径other.json,根据URI解析规则,会替换基础URI路径的最后一段(root.json),得到同目录下的新路径:/some/path/other.json。
  3. 最终,子模式B的绝对URI是http://example.com/some/path/other.json。

你可以通过以下几种方式识别/引用这个子模式:

  • 从根模式内部引用:使用片段标识符 #/definitions/B
  • 直接引用子模式的绝对URI:http://example.com/some/path/other.json
  • 带空片段的绝对URI:http://example.com/some/path/other.json#(空片段指向整个子模式本身)
  • 从根模式的绝对URI加片段:http://example.com/some/path/root.json#/definitions/B

补充说明:如果子模式的$id写成./other.json,解析结果和other.json完全一致;如果是../other.json,则会定位到上一级目录,得到http://example.com/some/other.json——这些都是标准的相对路径解析逻辑,和你平时处理文件路径的思路是一致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:14:29