У меня странная проблема с проверкой встроенной схемы JSON кода MS Visual Studio (версия 1.31.1 ), которую я попытался проиллюстрировать здесь как минимальный *Пример 1004 *, complete и проверяемый .
Итак, для этого примера давайте предположим, что у нас есть файл с именем myjson.json , который долженбыть проверенным по файлу схемы myschema.json (полное содержимое файла приведено ниже).
В этом созвездии я ожидаю, что если вы наведете указатель мыши непосредственно на элемент (или элемент)значение) В редакторе VSCode будет отображаться соответствующий текст описания из файла схемы.
Вместо этого это работает только для первого элемента в foodItems (Рисунок 1).Для всех остальных элементов ничего не отображается. (Рисунок 2).Похоже, что другие элементы вообще не обрабатываются редактором.
Я что-то здесь не так делаю или это недостаток в VSCode?
Рисунок 1 - Мышьнаведение и проверка работоспособности для первого элемента
Изображение 2 - наведение и проверка мыши не работают для всех последующих элементов
Содержимое файла:
myschema.json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "My Schema",
"type": "object",
"properties": {
"foodItems": {
"type": "array",
"items": [ {"$ref": "#/definitions/foodItem"} ]
}
},
"definitions": {
"foodItemApple": {
"type": "object",
"properties": {
"name": {
"const": "Apple"
},
"amount": {
"type": "number",
"description": "The current amount of apples"
}
},
"required": ["name", "amount"],
"additionalProperties": false
},
"foodItemOrange": {
"type": "object",
"properties": {
"name": {
"const": "Orange"
},
"amount": {
"type": "number",
"description": "The current amount of oranges"
}
},
"required": ["name", "amount"
],
"additionalProperties": false
},
"foodItemCherry": {
"type": "object",
"properties": {
"name": {
"const": "Cherry"
},
"amount": {
"type": "number",
"description": "The current amount of cherries"
}
},
"required": ["name", "amount"],
"additionalProperties": false
},
"foodItem": {
"anyOf": [
{"$ref": "#/definitions/foodItemApple"},
{"$ref": "#/definitions/foodItemOrange"},
{"$ref": "#/definitions/foodItemCherry"}
]
}
}
}
myjson.json
{
"$schema": "./myschema.json" ,
"foodItems": [
{
"name": "Apple",
"amount": 0
},
{
"name": "Orange",
"amount": 0
},
{
"name": "Cherry",
"amount": 0
}
]
}