【发布时间】:2021-02-19 05:59:01
【问题描述】:
我正在尝试针对 JSON 架构验证大约 100 个 JSON 对象,以查看所有字段以及类型是否符合架构。
在从站点生成的 JSON 架构下进行了尝试。 以下架构的问题在于它不支持验证“文件”字段的多个项目,因为架构不完全正确。
在架构下方添加
var schema ={
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"contents": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"version": {
"type": "string"
},
"sequence": {
"type": "integer"
},
"files": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"fileName": {
"type": "string"
},
"name": {
"type": "string"
},
"fileSize": {
"type": "string"
},
"fileType": {
"type": "string"
},
"lastUpdatedDate": {
"type": "integer"
},
"fileLength": {
"type": "integer"
},
"version": {
"type": "integer"
}
},
"required": [
"fileName",
"name",
"fileSize",
"fileType",
"lastUpdatedDate",
"fileLength",
"version"
]
}
]
}
},
"required": [
"version",
"sequence",
"files"
]
}
]
}
},
"required": [
"contents"
]
}
},
"required": [
"data"
]
}
var validator = new Validator(schema)
var json=
{
"data": {
"contents": [
{
"versionn": "2021-01-15T16:01:13.475Z",
"sequence": 1,
"files": [
{
"fileName": "us-producer-price-index.txt",
"name": "us-producer-price-index",
"fileSize": "54MB",
"fileType": "txt",
"lastUpdatedDate": 1610717473000,
"fileLength": 56614933,
"version": 2
}
]
}
]
}
};
var check = validator.check(json);
console.log(check);
if(check._error==true)
{
console.log("Error in schema")
}
【问题讨论】:
-
您的 JSON 无效。
-
@RichardRublev 架构无效?你能建议改变吗
-
@RichardRublev 添加了有效的模式,仍然是相同的输出
标签: javascript node.js json jsonschema json-schema-validator