验证包含日期的Javascript对象

时间:2014-07-17 14:10:20

标签: javascript json validation jsonschema

验证包含日期字段的JavaScript对象有什么好的做法?

有像tv4这样的JSON验证器可以validate the format of strings

但是,我们的业务逻辑与实例JavaScript-Date的日期一起使用,并且这些对象不会验证。

我们目前的程序是

  1. 使用date reviver
  2. 使用JSON.parse()读取 business 对象
  3. 使用业务逻辑处理对象,然后使用
  4. 进行验证
  5. 使用date stringifier
  6. 将对象转换为JSON
  7. 使用JSON.parse()读取字符串,现在没有reviver
  8. 验证此对象
  9. 有没有更好的方法来验证与步骤3,4和5相反? 最好直接验证业务对象?

    示例:

    JSON字符串

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

    JSON字符串的架构

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

    业务对象

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

1 个答案:

答案 0 :(得分:2)

如果您使用的是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 does not check correctly

中提到了此方法