soljsonvalidate - 针对 json 架构文件验证 json。
/usr/bin/soljsonvalidate [-nv] [-i pattern] [path] ...
soljsonvalidate 命令装入 JSON 架构文件并针对这些架构验证 JSON 文件。
缺省情况下,soljsonvalidate 装入可从 /usr/share/lib/json/soljsonvalidate 底层访问的所有架构。其中的任何架构都将标识有 'id' 标记。对于声明符合其中一个架构(具有 '$schema' 属性)的任何 JSON 文件,将针对相应架构进行验证。如果指定了 –n 选项,则不从缺省路径装入任何架构。
将对传递到 soljsonvalidate 的所有路径进行检查。对目录以递归方式进行检查,对符号链接进行遍历。如果有普通文件匹配 –i 选项指定的模式,则它们将排队以进行验证。未指定 –i 选项时使用的缺省模式为 '*.json'。
如果未指定路径,则 soljsonvalidate 将尝试从 stdin 读取 JSON 文件并对其进行验证。
将打开所有匹配的 JSON 文件并检查是否存在 JSON 语法错误。如果发现语法错误,则不执行验证。所有 JSON 文件在装入后都将进行验证,并针对内置的基础架构验证找到的任何新架构。
缺省情况下,soljsonvalidate 以无提示方式运行,如果没有发生错误,退出时显示 0 错误代码。如果发生错误,则输出相应的错误消息。如果指定了 –v 选项,则 soljsonvalidate 对成功验证的每个 json 目标文件输出一行,并对未通过验证的 json 目标文件生成任何错误消息。
请注意,"/usr/bin/soljsonvalidate <path> ..." 等效于 "/usr/bin/soljsonvalidate -n /usr/share/lib/json/soljsonvalidate <path> .."。
此命令的输出(有错误和带 –v 选项时)适合用户使用,且生成的消息的格式会显式变化。
支持以下选项:
/usr/share/lib/json/soljsonvalidate 不作为路径中第一项装入。
对于成功的验证,会输出消息。
按照 fnmatch(7) 手册页中所述,指定匹配模式的备用文件。
所有 JSON 文件都已装入并已成功验证。
出现了一个或多个错误。
下面是样例 JSON 文件 'solaris.json':
[{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "solaris-machine", "description": "machines on which Solaris runs", "type": "object", "properties": { "architecture": { "description": "machine CPU architecture", "enum": ["SPARC", "x86"] }, "number-of-sockets": { "type": "integer", "minimum": 1 } } }, { "$schema": "solaris-machine", "id": "M6-32", "architecture": "SPARC", "number-of-sockets": 32 }, { "$schema": "solaris-machine", "id": "not-so-far", "architecture": "ARM", "number-of-sockets": 1 }, { "$schema": "solaris-machine", "id": "missing-something-important", "architecture": "SPARC", "number-of-sockets": 0 } ]
使用 soljsonvalidate 命令验证此文件时,显示以下两条错误消息:
bash: soljsonvalidate -n solaris.json solaris.json: validation error: key 'architecture' does not have value ('"ARM"') contained in enum ["SPARC", "x86"] solaris.json: validation error: key 'number-of-sockets' is 0.000000, less than minimum value 1.000000
有关下列属性的说明,请参见 attributes(7):
|