Javascript 图式<;[对象]>;已存在,但定义不同
获取Javascript 图式<;[对象]>;已存在,但定义不同,javascript,node.js,npm,jsonschema,json-schema-validator,Javascript,Node.js,Npm,Jsonschema,Json Schema Validator,获取架构已存在,但定义不同错误,尝试在一个架构中引用两个架构 如果我做错了什么,请纠正我: coups.js中的优惠券模式 const优惠券\u模式={ “id”:“/优惠券”, “项目”:{ “id”:“/项”, “财产”:{ “说明”:{ “类型”:“字符串” }, “Ean”:{ “类型”:“字符串” }, “过期日期”:{ “类型”:“字符串” }, “Id”:{ “类型”:“字符串” }, “姓名”:{ “类型”:“字符串” }, “起始日期”:{ “类型”:“字符串” }, “类型
架构已存在,但定义不同
错误,尝试在一个架构中引用两个架构
如果我做错了什么,请纠正我:
coups.js中的优惠券模式
const优惠券\u模式={
“id”:“/优惠券”,
“项目”:{
“id”:“/项”,
“财产”:{
“说明”:{
“类型”:“字符串”
},
“Ean”:{
“类型”:“字符串”
},
“过期日期”:{
“类型”:“字符串”
},
“Id”:{
“类型”:“字符串”
},
“姓名”:{
“类型”:“字符串”
},
“起始日期”:{
“类型”:“字符串”
},
“类型”:{
“类型”:“字符串”
},
“凭证价值”:{
“类型”:“字符串”
}
},
“类型”:“对象”
},
“类型”:“数组”
};
导出默认模式代码>问题可能是您在coups.js和rewards.js中都使用了id
“/items”<代码>id
s需要是通用唯一的。这就是为什么它们被认为是绝对的URI。在我的例子中(任何其他登陆这里发现类似问题的人),
我们有一个以下格式的模式文件:
{
"keyA": {
"type": "string",
"example": "0319739002",
"id": "/keyA",
"minLength": 1,
"maxLength": 100
},
"keyB": {
"keyA": {
"type": "string",
"example": "0186013001",
"id": "/keyA",
"minLength": 1,
"maxLength": 100
}
}
}
其中,keyA是keyB的一部分,但id被重复。删除(/重命名)“id”字段对我们有效。我们可以查看验证器类/函数吗?验证器函数是从“jsonschema”npm packageid导入的。/items”用于将其定义为数组。我们可以控制它,因为它的父id不同。你误解了我的意思<代码>id不会按您期望的方式嵌套。它们必须是唯一的,不考虑它们的定义位置。您可以改为使用“/优惠券/项目”和“/奖励/项目”,这将是您所期望的,但无论父级
id
s如何,您都不能两次使用“/项目”。这不是JSON模式中存在的概念。