1

我正在尝试为以下对象(关联数组)编写验证方法:

{
  "10:00": {
    discount: 10,
    time: "10:00",
  },
  "11:00": {
    discount: 11,
    time: "11:00",
  },
  ...
  ....
}

使用 Joi ( https://github.com/hapijs/joi ) 我到目前为止得到的是:

Joi.object().keys(
            {time:{
                discount: Joi.number(),
                time: Joi.string(),
            }}
        ),

这显然是错误的并且失败了:ValidationError: child "discounts" fails because ["10:00" is not allowed, "11:00" is not allowed]

任何人都可以建议如何为具有可变数量的键(关联数组)的对象编写验证

4

1 回答 1

1

通读后整理出来:有没有办法验证动态键名?

Joi.object().pattern(/^/, [
            Joi.object({
                discount: Joi.number(),
                time: Joi.string()
            })
        ])
于 2017-08-05T02:23:04.647 回答