为什么NaN不是json-schema原始类型?

时间:2014-10-22 22:55:07

标签: javascript validation types primitive jsonschema

在我的json-schema中,我将属性定义为

"units":"number"

现在,使用JJV验证器(json-schema implimentation),我在我的数据模型中遇到一个NaN值。我想做这样的事情"units":["number","NaN"]而不是做这样的自定义强制函数:

    env.addTypeCoercion('number', function(x){
                if( isNaN(x))
                {
                    return 0
                }
                return x;
            });

版本4中的JSON schema primitive types似乎不包含NaN。我怎样才能设计一个允许我将属性表示为数字或NaN的模式?

1 个答案:

答案 0 :(得分:3)

The definition of JSON 不允许使用NaN值。因此,允许NaN的任何JSON结构模式都允许不是JSON

如果您使用包含NaN值的JSON.stringify创建JSON,则会将其替换为null