我有一个JSON模式,它看起来像这样:
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://example.com/item.json",
"allOf": [{
"$ref": "https://example.com/definitions.json#/$defs/object"
}]
}
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://example.com/definitions.json",
"$defs": {
"object": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
}
}
我想能够在VSCode中编辑它们,将所有的 $ref
解析为它们的本地对应项。这可以通过VSCode解析 $id
字段并根据 $id
从远程URL确定到本地文件的Map来实现。
2条答案
按热度按时间cgfeq70w1#
我也在寻找这个功能。我有一个使用这些模式的模式和文档的存储库,只是它们被组织成文件结构。这意味着每当我深入到文档中的另一个文件夹时,我必须将
../
添加到我的文档中的$schema
和$ref
中,以引用相同的本地文件。如果所有模式都可以在一个工作区中通过它们的$id
加载到列表中,当你在$ref
或$schema
中开始输入域名时,就可以自动完成。dxpyg8gm2#
我也在寻找一个简单的解决方案,让我的JSON模式在本地解析。我想收集我的发现。
在一个相关的问题(#174672)中建议使用
json.schemas
设置和file://
协议。然而,当我尝试引用一个相对文件时,我无法让VSCode加载正确的模式,原因如下:file://
协议时,不可能使用相对路径${workspaceFolder}
作为备注,可以使用
fileMatch
字段,但需要特定的路径命名约定,这并不总是期望的行为。按照这个问题的建议,通过ID解析所有模式是最简单的!另一种方法可以是遵循#166438的建议,并在
json.schemas
配置字段中利用$ref
字段。