处理JSON中的无穷大值

问题描述 投票:0回答:1

我需要在一个地方支持我的JSON中的infinity,-infinity和NaN值。现在,尽管JSON确实支持这些值,但是在同一JSON实例的模式中没有指定它们的支持,我的意思是RFC规范指出“数字”类型下不支持这些值。但是,当我针对类型为“ number”的模式验证具有无限值的此类JSON实例时,它没有产生错误!有人可以帮我弄清楚为什么会发生这种情况,如果“数字”类型放弃了这些值,我如何在JSON模式中定义这些值的类型。这是我用来验证的架构和实例。

模式:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
        "properties": {
        "lower_bound": {"type": "number"}
        }
}

正在验证的JSON实例:

{
    "lower_bound": Infinity
}
json jsonschema json-schema-validator python-jsonschema
1个回答
2
投票

JSON不支持无穷或NaN值(并且从不支持,因为原始的json.org语法)。 JSON Schema都没有(因为它仅为符合RFC8259的JSON文档或结构定义)。

这是由于互操作性原因-否则,每种不支持无限性或NaN的目标语言都必须始终包装这些值。

[某些验证器是否接受无效的json文档-并不重要。它们仍然无效。

© www.soinside.com 2019 - 2024. All rights reserved.