Json 具有至少一个(或更多)ajv 属性的架构
Json Schema which has at least one of any properties (or more) with ajv
我正在尝试构建一个简单的 Json 架构(至少我是这么想的),它包含两个属性 foo
和 bar
.
它应该在以下时间验证:
foo
在 json 中,没有其他属性
- 或
bar
在json中,没有其他属性
- 或
foo
和 bar
在 json 中,没有其他属性。
我正在使用 ajv 和 Typescript,这是代码:
interface MyData {
foo: number;
bar: string;
}
const schema: JSONSchemaType<MyData> = {
type: 'object',
minProperties: 1,
properties: {
foo: { type: 'integer' },
bar: { type: 'string' },
},
additionalProperties: false,
};
但是 Typescript 强制我添加一个 required
字段,如果我这样做了,它会起作用,但这意味着至少有一个 specific 属性总是需要这不是我想要的。我不确定这是我对 JsonSchema 的错误理解,还是 ajv 的 Typescript 实现问题。
所以答案太明显了,但如果其他人也被卡住,我仍然会post在这里。
我刚刚添加了一个空的 required
属性 像这样:
require:[]
出于某种原因,我认为这是不允许的,但它有效...
我正在尝试构建一个简单的 Json 架构(至少我是这么想的),它包含两个属性 foo
和 bar
.
它应该在以下时间验证:
foo
在 json 中,没有其他属性- 或
bar
在json中,没有其他属性 - 或
foo
和bar
在 json 中,没有其他属性。
我正在使用 ajv 和 Typescript,这是代码:
interface MyData {
foo: number;
bar: string;
}
const schema: JSONSchemaType<MyData> = {
type: 'object',
minProperties: 1,
properties: {
foo: { type: 'integer' },
bar: { type: 'string' },
},
additionalProperties: false,
};
但是 Typescript 强制我添加一个 required
字段,如果我这样做了,它会起作用,但这意味着至少有一个 specific 属性总是需要这不是我想要的。我不确定这是我对 JsonSchema 的错误理解,还是 ajv 的 Typescript 实现问题。
所以答案太明显了,但如果其他人也被卡住,我仍然会post在这里。
我刚刚添加了一个空的 required
属性 像这样:
require:[]
出于某种原因,我认为这是不允许的,但它有效...