如何在 AJV 错误的错误消息中使用 属性 名称
How to use property names in error messages with AJV errors
我正在将 ajv-errors 与 ajv v8 一起使用 - 根据 docs 我应该能够使用指针来引用字段名称,但我的尝试失败并出现错误,例如:Cannot access property/index 0 levels up, current level is 0
示例架构:
{
$schema: "http://json-schema.org/draft-07/schema#",
type: "object",
additionalProperties: false,
properties: {
name: { type: "string" }
},
required: ["name"],
errorMessage: {
required: 'Field ${0#} is so required'
}
}
有什么想法吗?我可能会使用绝对指针,但我不确定为了创建路径这实际上指的是什么数据。
0#
是当前成员名称或数组索引的 relative json pointer。
ajv-errors
将此查找基于它正在验证的 { field: value }
数据,而不是模式中的某处。
因此,在 属性 errorMessage
中,您可以访问上一级对象:
{
type: "object",
properties: {
named: {
type: "string",
errorMessage: {
type: 'Field ${0#} is so ', // 'Field "named" is so {"named":2}'
},
},
},
}
出现 required
,没有字段或值,因此没有要查找的数据。
const schema = {
type: "object",
properties: {
name: {
type: "string",
},
},
required: ["name"],
errorMessage: {
required: {
name: 'Field "name" is so [=11=]', // 'Field "name" is so {}'
}
},
}
您可以像上面那样为每个字段添加显式消息。
我正在将 ajv-errors 与 ajv v8 一起使用 - 根据 docs 我应该能够使用指针来引用字段名称,但我的尝试失败并出现错误,例如:Cannot access property/index 0 levels up, current level is 0
示例架构:
{
$schema: "http://json-schema.org/draft-07/schema#",
type: "object",
additionalProperties: false,
properties: {
name: { type: "string" }
},
required: ["name"],
errorMessage: {
required: 'Field ${0#} is so required'
}
}
有什么想法吗?我可能会使用绝对指针,但我不确定为了创建路径这实际上指的是什么数据。
0#
是当前成员名称或数组索引的 relative json pointer。
ajv-errors
将此查找基于它正在验证的 { field: value }
数据,而不是模式中的某处。
因此,在 属性 errorMessage
中,您可以访问上一级对象:
{
type: "object",
properties: {
named: {
type: "string",
errorMessage: {
type: 'Field ${0#} is so ', // 'Field "named" is so {"named":2}'
},
},
},
}
出现 required
,没有字段或值,因此没有要查找的数据。
const schema = {
type: "object",
properties: {
name: {
type: "string",
},
},
required: ["name"],
errorMessage: {
required: {
name: 'Field "name" is so [=11=]', // 'Field "name" is so {}'
}
},
}
您可以像上面那样为每个字段添加显式消息。