Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

soljsonvalidate (1)

名称

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 选项时)适合用户使用,且生成的消息的格式会显式变化。

选项

支持以下选项:

–n

/usr/share/lib/json/soljsonvalidate 不作为路径中第一项装入。

–v

对于成功的验证,会输出消息。

–i pattern

按照 fnmatch(7) 手册页中所述,指定匹配模式的备用文件。

退出状态

0

所有 JSON 文件都已装入并已成功验证。

1

出现了一个或多个错误。

示例

示例 1 验证 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)

属性类型
属性值
可用性
pkg:/developer/base-developer-utilities
接口稳定性
name, options, and exit codes: evolving(名称、选项和退出代码: 发展中)
messages: volatile(消息: 可变)

另请参见

soljsonfmt(1)