#validate-json #binary #syntax #static #mistakes #distributed #valid

app jsonvalid

使用静态二进制文件,可以轻松分发,验证 JSON 文件中的语法错误!

2 个版本

使用旧的 Rust 2015

0.1.1 2018 年 2 月 20 日
0.1.0 2018 年 2 月 20 日

#8#mistakes

MIT/Apache

8KB
56

JSON Valid 构建状态 jsonvalid 的 Crates.io 版本

使用静态二进制文件,可以轻松分发,验证 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许可证定义的,您有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外条款或条件。

依赖项

~5MB
~156K SLoC