繁体   English   中英

Joi 验证 || 在 object 的数组中,至少有一个 object 应该包含某个键的特定值

[英]Joi Validation || In an array of object, at least one object should contain a particular value of a key

我需要以下 object 数组的架构:

option = [
    {
        answer: '',
        isTrue: false
    },
    {
        answer: '',
        isTrue: true
    },
]

到目前为止,我写了以下架构:

Joi.array().items(Joi.object({
   answer: Joi.string().required(),
   isTrue: Joi.boolean().required()
}).unknown()).min(2).required()

问题:我需要验证至少一个 object 应该有“isTrue”键的值为“true”(布尔值)

 let optionsValidation = Joi.object().keys({
      answer: Joi.string().required(),
      isTrue: Joi.boolean().required()
    });
    
    //replace with your field name
    options: Joi.array()
          .items(optionsValidation)
          .has(
            Joi.object().keys({
              answer: Joi.string().required(),
              isTrue: Joi.boolean().invalid(false).required();
            }),
          )

也许您需要更改 smth 以适应您的代码,但这应该可行。 它确保数组中至少有一个 object 应该有一个答案并且应该是真的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM