gpt4 book ai didi

jsonschema - 使用 tv4.js 在 json 模式草案 4 中嵌套 "oneOf"问题

转载 作者:行者123 更新时间:2023-12-03 23:35:28 25 4
gpt4 key购买 nike

我正在使用 tv4.js根据模式(具有嵌套的 oneOf 属性)验证一些 json,但当我使用有效数据时它返回错误。这是我从 tv4.js validateMultiple 方法返回的结果对象:

{"valid":false,"errors":[{"code":11,"message":"Data does not match any schemas from \"oneOf\"","schemaKey":null,"dataPath":"/shape","subErrors":[{"code":302,"message":"Missing required property: boxname","schemaKey":null,"dataPath":"/shape","subErrors":null},{"code":1,"message":"No enum match for: \"circle\"","schemaKey":null,"dataPath":"/shape/thetype","subErrors":null},{"code":12,"message":"Data is valid against more than one schema from \"oneOf\": indices 0 and 1","schemaKey":null,"dataPath":"/shape","subErrors":null}]}],"missing":[]}

这是我的测试模式:

{
"type": "object",
"properties": {
"shape": {
"oneOf": [
{ "$ref":"#/definitions/squareSchema" },
{ "$ref":"#/definitions/circleSchema" }
]
}
},
"definitions": {
"squareSchema": {
"type": "object",
"properties": {
"thetype": {
"type": "string",
"enum": ["square"]
},
"colour":{},
"shade":{},
"boxname": {
"type":"string"
}
},
"oneOf":[
{ "$ref":"#/definitions/colourSchema" },
{ "$ref":"#/definitions/shadeSchema" }
],
"required": ["thetype", "boxname"],
"additionalProperties":false
},
"circleSchema": {
"type": "object",
"properties": {
"thetype": {
"type": "string",
"enum":["circle"]
},
"colour":{},
"shade":{}
},
"oneOf":[
{ "$ref":"#/definitions/colourSchema" },
{ "$ref":"#/definitions/shadeSchema" }
],
"additionalProperties":false
},
"colourSchema":{
"type":"object",
"properties":{
"colour":{
"type":"string"
},
"shade":{
"type":"null"
}
}
},
"shadeSchema":{
"type":"object",
"properties":{
"shade":{
"type":"string"
},
"colour":{
"type":"null"
}
}
}
}
}

这是我希望验证的数据:

{
"shape": {
"thetype": "circle",
"shade":"red"
}
}

我似乎只在使用嵌套的“oneOf”时遇到这个问题。这是我的模式的问题吗?还是 tv4.js 的错误?是否有任何替代验证器可以在 Web 浏览器中执行此验证?

如有任何帮助,我们将不胜感激。

最佳答案

works for me (使用“试用 tv4”演示)。

通常,我建议您在 GitHub repo 上提交问题如果你认为你发现了一个错误。但是,错误输出包含 schemaKey 这一事实让我认为您使用的是相当旧的版本。

您使用的是最新版本的 tv4 吗?

关于jsonschema - 使用 tv4.js 在 json 模式草案 4 中嵌套 "oneOf"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21455830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com