JSON模式草案4 VS JSON模式草案3

时间:2013-06-20 04:27:06

标签: json jsonschema

模式草案4中有哪些功能不在IETF生成的JSON模式草案3中?

2 个答案:

答案 0 :(得分:28)

来自更改日志:

新关键字

  • anyOf(匹配架构数组中的至少一个架构),
  • allOf(匹配架构数组中的所有架构),
  • oneOf(与架构数组中的一个架构完全匹配),
  • not(与架构不匹配),
  • multipleOf(替换divisibleBy),
  • minProperties和maxProperties(对象实例中的最小和最大成员数),
  • 定义(内联子模板的标准化容器)。

移除:

  • 不允许
  • 延伸
  • divisbleBy

功能改变:

类型

  • 当值是数组时,不再允许模式作为元素。此外,该数组必须至少有一个元素。

之前


{
    "type": [ "string", { "other": "schema" } ]
}

立即


{
   "anyOf": [
       { "type": "string" },
       { "other": "schema" }
    ]
}

必需

  • 之前,它是属性中子模式的属性。它现在是扮演相同角色的第一级关键字,并且有一个字符串数组作为参数。

之前


{
    "properties": {
        "p": {
            "type": "string",
            "required": true
        },
        "q": {
            "type": "string",
            "required": true
        }
    }
}

立即


{
    "properties": {
        "p": { "type": "string" },
        "q": { "type": "string" }
    },
    "required": [ "p", "q" ]
}

依赖关系

  • 不再允许属性依赖项中的单个字符串,只允许数组

之前


{
    "dependencies": { "a": "b" }
}

立即


{
    "dependencies": { "a": [ "b" ] }
}

答案 1 :(得分:6)

如果您对深度潜水感兴趣,可以review a diff between the two drafts on the IETF site

但是,如果您正在寻找更简单的更改摘要,Geraint Luff和Francis Galiegue在项目的github wiki上创建了一个changelog page,列出了更改,添加和删除。