验证包含日期的Javascript对象

Validating Javascript Objects containing dates

本文关键字:Javascript 对象 日期 包含 验证      更新时间:2023-09-26

验证包含日期字段的JavaScript对象的良好实践是什么?

有像tv4这样的JSON验证器可以验证字符串的格式。

但是,我们的业务逻辑使用实例JavaScript-Date的日期,这些对象将无法验证。

当前程序是

  1. 读取业务对象与JSON.parse()使用一个日期回收器
  2. 用业务逻辑处理对象,然后用
  3. 验证
  4. 使用日期字符串将对象转换为JSON
  5. 使用JSON.parse()读取字符串,现在没有reviver
  6. 验证此对象

是否有更好的方法来验证与步骤3、4和5相反?最好直接验证业务对象?

的例子:

JSON字符串

{
    "birth": "1994-03-17"
}

JSON字符串

的Schema
{
    type: 'string',
    format: 'date-time'
}

业务对象

{
    birth: new Date("1994-03-17")
}

如果您使用的是tv4库,您可以这样做:

tv4.addFormat('date-time', function (data) {
    if (data instaceof Date) return null;
    else return "not a valid date";
});

,你的验证应该是:

{
    type: "object",
    format: "date-time"
}

这个方法是在你发布的问题中提到的(json schema date-time不正确检查)