如何识别文件类型是json数据还是json模式

时间:2016-12-01 09:53:48

标签: java json jsonschema

我想知道在上传文件时如何区分用户是否已经上传了JSON模式文件或该模式的实际JSON数据文件,因为它们都具有.json类型,不像XML或XSD情况我们从文件类型可以识别用户是否正在上传XML或XSD。

1 个答案:

答案 0 :(得分:3)

简答

你做不到。

长答案

与XSD不同,JSON模式可以用与非模式JSON文档无法区分的术语表示。

然而,在实践中,您可以做些事情。按照惯例,JSON模式可以从 $ schema 属性开始,告诉消费者正在使用哪个版本的JSON模式,例如:

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

此外,JSON模式可以使用 $ ref 属性,该属性允许模式作者引用模式中的其他属性,例如:

"thing":{
    "$ref": "#/definitions/Thing"
}

有许多集合属性也可以放弃:required[]oneOf[]allOf[]。但是,重点是可以在不使用任何这些元素的情况下创建模式。