#json #json-path #utility #cli

app cj

闪电般的命令行 JSON 处理器

2 个版本

0.0.2 2022年7月2日
0.0.1 2022年7月2日
0.0.0 2022年6月27日

#38 in #json-path

GPL-3.0-or-later

8KB
92

CJ

cj 是一个轻量级的命令行工具,可以以闪电般的速度处理 JSON 文件。

用法

cj 0.1.0

USAGE:
    cj [OPTIONS] [--] [STDIN]

ARGS:
    <STDIN>    read from stdin

OPTIONS:
    -c, --compress                compress JSON input
    -f, --filters <FILTERS>...    filters
    -h, --help                    Print help information
    -p, --path [<PATH>...]        file path relative or absolute
    -V, --version                 Print version information

示例

假设您在当前工作目录中有一个名为 test.json 的文件,内容如下,当没有提供过滤器表达式时,默认行为是美化打印 JSON 输入。(颜色支持即将推出...)。

$ cat test.json | cj
# OR you can specify the absolute / relative file path with -p option
$ cj -p test.json
{
  "store": {
    "bicycle": {
      "color": "red",
      "price": 19.95
    },
    "book": [
      {
        "author": "Nigel Rees",
        "category": "reference",
        "price": 8.95,
        "title": "Sayings of the Century"
      },
      {
        "author": "Evelyn Waugh",
        "category": "fiction",
        "price": 12.99,
        "title": "Sword of Honour"
      },
      {
        "author": "Herman Melville",
        "category": "fiction",
        "isbn": "0-553-21311-3",
        "price": 8.99,
        "title": "Moby Dick"
      },
      {
        "author": "J. R. R. Tolkien",
        "category": "fiction",
        "isbn": "0-395-19395-8",
        "price": 22.99,
        "title": "The Lord of the Rings"
      }
    ]
  }
}

过滤出价格低于10元的书籍

$ cj -f $.store.book\[\?\(\@.price\ \<\ 10\)\].title 

# Outputs the following:
# "Sayings of the Century","Moby Dick"

您也可以链式使用过滤器

$ cj -f '$.store.book[?(@.price < 10)].title' $..price

# Outputs the following:
# "Sayings of the Century","Moby Dick"
# 19.95,8.95,12.99,8.99,22.99

有关 JSON 路径表达式的更多信息,请访问 此处

依赖项

~9MB
~171K SLoC