在JSON模式中使用RegEx

尝试编写使用RegEx验证项目值的JSON模式。

有一个名为 的项目,该项目的值应预适应此RegEx字符串"^[A-Za-z0-9

-_]+_Prog\\.(exe|EXE)$"

找不到任何实际解释JSON模式中RegEx用法的教程或示例。

任何帮助/信息将不胜感激!

感谢:D

JSON架构

{

"name": "string",

"properties": {

"progName": {

"type": "string",

"description": "Program Name",

"required": true

},

"ID": {

"type": "string",

"description": "Identifier",

"required": true

},

"progVer": {

"type": "string",

"description": "Version number",

"required": true

},

"progBinaryName": {

"type": "string",

"description": "Actual name of binary",

"patternProperties": {

"progBinaryName": "^[A-Za-z0-9 -_]+_Prog\\.(exe|EXE)$"

},

"required": true

}

}

}

错误:

警告!更好地检查您的JSON。

实例不是必需的类型-http://json-schema.org/draft-03/hyper-schema#


架构是有效的JSON,但不是有效的架构。


验证结果:失败

[ {

"level" : "warning",

"schema" : {

"loadingURI" : "#",

"pointer" : ""

},

"domain" : "syntax",

"message" : "unknown keyword(s) found; ignored",

"ignored" : [ "name" ]

}, {

"level" : "error",

"domain" : "syntax",

"schema" : {

"loadingURI" : "#",

"pointer" : "/properties/ID"

},

"keyword" : "required",

"message" : "value has incorrect type",

"expected" : [ "array" ],

"found" : "boolean"

}, {

"level" : "error",

"domain" : "syntax",

"schema" : {

"loadingURI" : "#",

"pointer" : "/properties/progBinaryName"

},

"keyword" : "required",

"message" : "value has incorrect type",

"expected" : [ "array" ],

"found" : "boolean"

}, {

"level" : "error",

"schema" : {

"loadingURI" : "#",

"pointer" : "/properties/progBinaryName/patternProperties/progBinaryName"

},

"domain" : "syntax",

"message" : "JSON value is not a JSON Schema: not an object",

"found" : "string"

}, {

"level" : "error",

"domain" : "syntax",

"schema" : {

"loadingURI" : "#",

"pointer" : "/properties/progName"

},

"keyword" : "required",

"message" : "value has incorrect type",

"expected" : [ "array" ],

"found" : "boolean"

}, {

"level" : "error",

"domain" : "syntax",

"schema" : {

"loadingURI" : "#",

"pointer" : "/properties/progVer"

},

"keyword" : "required",

"message" : "value has incorrect type",

"expected" : [ "array" ],

"found" : "boolean"

} ]


Problem with schema#/properties/progBinaryName/patternProperties/progBinaryName : Instance is not a required type

Reported by http://json-schema.org/draft-03/hyper-schema#

Attribute "type" (["object"])

回答:

要针对RegEx测试字符串值(不是属性名称),应使用"pattern"关键字:

{

"type": "object",

"properties": {

"progBinaryName": {

"type": "string",

"pattern": "^[A-Za-z0-9 -_]+_Prog\\.(exe|EXE)$"

}

}

}

PS-如果您希望模式与属性的

(而不是值)相匹配,则应使用"patternProperties"(就像"properties",但键是RegEx)。

以上是 在JSON模式中使用RegEx 的全部内容, 来源链接: utcz.com/qa/398540.html

回到顶部