Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定文件类型是json数据还是json模式_Java_Json_Jsonschema - Fatal编程技术网

Java 如何确定文件类型是json数据还是json模式

Java 如何确定文件类型是json数据还是json模式,java,json,jsonschema,Java,Json,Jsonschema,我想知道在上传文件时,如何区分用户是否上传了该模式的JSON模式文件或实际JSON数据文件,因为两者都是.JSON类型,而不是XML或XSD情况,从文件类型我们可以识别用户是上传XML还是XSD。简短回答 你不能 长答案 与XSD不同,JSON模式可以用术语表示,这使得它与非模式JSON文档无法区分 然而,在实践中,你可以做一些事情。按照惯例,JSON模式可以以$schema属性开头,告诉消费者正在使用的JSON模式的版本,例如: { "$schema": "http://json-sche

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

简短回答

你不能

长答案

与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[]
。然而,主要的一点是,不使用这些元素就可以创建模式

json模式应始终包含“$schema”field@FabrizioStellato-不正确。JSON模式规范不需要$schema属性