Я пытаюсь создать схему JSON, которая может поддерживать проверку объектов JSON со значениями свойств, которые могут быть либо обычными типами JSON, либо строками, представляющими допустимые выражения JSONpath.
Так, например, с учетом этой схемы:
{
"$schema": "http://json-schema.org/draft-07/schema",
"properties": {
"age": {
"type": "number"
}
}
}
Любой из этих объектов JSON может быть действительным:
{
"age": 30
}
{
"age" "$.age"
}
Я застрял при попытке добавить пользовательское ключевое слово с именем jsonPath
, например:
{
"$schema": "http://json-schema.org/draft-07/schema",
"properties": {
"age": {
"type": "number",
"jsonPath": true
}
}
}
ajv.addKeyword('jsonPath', {
valid: true,
compile: () => data => {
return /^\$./.test(data)
}
})
В идеале я хотел бы просто иметь возможность проверить, является ли заданное значение свойства допустимой строкой JSONPath, и если это так, утвердить его. В противном случае, пусть ajv выполнит собственную проверку.
Спасибо за любую помощь!