JSON 架构,验证数组中只有一个对象具有 属性 等于值
JSON schema, validate that only one object in array has property equals to value
我有一个有效载荷,我想使用 JSON 模式验证,但在这种情况下我不知道如何转换为模式。
假设我有这个对象:
{
jobs: [
{ title: "Developer", salary: "100", actual: false },
{ title: "Plumber", salary: "200", actual: true },
{ title: "Teacher", salary: "100", actual: false }
]
}
我想编写一个模式来验证如果 jobs
数组中有对象,其中一个(并且只有一个)必须将 actual
键设置为 true
.
这可能吗?
是的,这是可能的。您想要使用“items”、“contains”、“minContains”和“maxContains”关键字设置模式,这些关键字利用“if”/“then”能力来编写条件。也就是说,在伪代码中:
- 我有一个带有 属性“工作”的对象,它的值必须是一个数组。
- 该数组中的 项 是对象,它们具有 属性 名为“title”、“salary”和“actual”(带有每个值的特定类型)。
- 要么“工作”数组有零个 项,要么它必须 包含 恰好一个具有 的项目属性 名为“actual”,其值为 常量,值为真。
我有一个有效载荷,我想使用 JSON 模式验证,但在这种情况下我不知道如何转换为模式。
假设我有这个对象:
{
jobs: [
{ title: "Developer", salary: "100", actual: false },
{ title: "Plumber", salary: "200", actual: true },
{ title: "Teacher", salary: "100", actual: false }
]
}
我想编写一个模式来验证如果 jobs
数组中有对象,其中一个(并且只有一个)必须将 actual
键设置为 true
.
这可能吗?
是的,这是可能的。您想要使用“items”、“contains”、“minContains”和“maxContains”关键字设置模式,这些关键字利用“if”/“then”能力来编写条件。也就是说,在伪代码中:
- 我有一个带有 属性“工作”的对象,它的值必须是一个数组。
- 该数组中的 项 是对象,它们具有 属性 名为“title”、“salary”和“actual”(带有每个值的特定类型)。
- 要么“工作”数组有零个 项,要么它必须 包含 恰好一个具有 的项目属性 名为“actual”,其值为 常量,值为真。