我想知道在上传文件时如何区分用户是否已经上传了JSON模式文件或该模式的实际JSON数据文件,因为它们都具有.json类型,不像XML或XSD情况我们从文件类型可以识别用户是否正在上传XML或XSD。
答案 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[]
。但是,重点是可以在不使用任何这些元素的情况下创建模式。