2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 2 月 20 日 |
---|---|
0.1.0 | 2018 年 2 月 20 日 |
#8 在 #mistakes
8KB
56 行
JSON Valid
使用静态二进制文件,可以轻松分发,验证 JSON 文件中的语法错误!
安装
您可以使用 Cargo 容易地安装它
cargo install jsonvalid
或者,您可以从 GitHub 发布页面 下载预构建的 JSON Valid 二进制文件。请确保选择适合您架构的静态二进制文件。
如果您选择的架构不可用,您不想使用 cargo install
,或者您想编译最新代码,您可以在克隆出的此存储库版本中执行简单的 cargo build --release
以获取二进制文件(只需要稳定的 Rust)。
用法
➜ jsonvalid --help
JSON Valid X.Y.Z
Nathan Kleyn <nathan@nathankleyn.com>
Checks whether JSON is valid and well-formed.
USAGE:
jsonvalid [FILE]...
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
ARGS:
<FILE>... files to validate; if none are given, it will read from stdin instead
示例
使用 STDIN
JSON Valid 会通过 STDIN 接受输入,如果没有错误则静默退出
➜ echo '{ "foo": "bar" }' | jsonvalid
➜ echo $?
0
如果有错误,您将看到有关错误发生位置的详细信息
➜ echo '{ "foo": "bar"' | jsonvalid
# => Error in JSON: EOF while parsing an object at line 2 column 0
➜ echo $?
1
使用文件路径
我们也可以使用文件而不是 STDIN
➜ echo '{ "foo": "bar" }' > valid.json
➜ echo '{ "foo": "bar"' > invalid.json
如果我们传递一个有效的文件,我们会看到相同的成功、静默退出
➜ jsonvalid valid.json
➜ echo $?
0
同样,一个无效的文件会显示原因
➜ jsonvalid invalid.json
# => Error in file invalid.json: EOF while parsing an object at line 2 column 0
➜ echo $?
1
我们还可以传递多个文件。如果任何文件无效,则整个命令失败
➜ jsonvalid valid.json invalid.json
# => Error in file invalid.json: EOF while parsing an object at line 2 column 0
➜ echo $?
1
背景
我想找到一个简单的方法来验证 JSON 文件的有效性,而无需
- 允许明显的语法错误(排除了
jq
,在 v1.5 及以下版本中,如果花括号不平衡则静默失败)。 - 不需要运行时或包系统来安装(排除了
jsonlint
,该软件目前已损坏且未维护!) - 不需要我知道 JSON 的内容(排除了使用 JSON 模式来实现上述目标的一切)。
因此,JSON Valid 应运而生!
许可证
许可协议为以下之一
- Apache许可证版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~5MB
~156K SLoC