#json-parser #json #jq #parser #parse-json #cli

app livejq

一个用于持续解析且在无效JSON上不会崩溃的jq的Rust实现。带有过滤器

6个稳定版本

2.0.0 2024年8月4日
1.1.1 2023年8月1日
1.0.2 2023年7月31日
1.0.1 2023年7月30日

#377命令行工具

Download history 87/week @ 2024-07-29 38/week @ 2024-08-05

每月下载量 125次

MIT 协议

13KB
225

LiveJQ

livejq 是一个类似 jq 的JSON解析器,但设计用于在连续输入时工作,不会在无效JSON上崩溃。带有json过滤器。

它使用 livejq.toml 文件来指定 过滤规则

用例

当你有一个打印日志的程序,其中可能包含其他格式,如文本和JSON,并且你想更好地可读性解析JSON时,你可以使用 livejq 来解析JSON,而不会在其他格式上崩溃。

或者当你想在对json进行解析时应用 filters

演示

https://github.com/KunalSin9h/livejq/assets/82411321/71907858-5150-4efe-8c0f-58bb1c0dc591

安装

使用 cargo 进行安装

cargo install livejq

或者你可以在 发布页面 中找到 binaries

用法

./your_program | livejq

过滤器

要应用过滤,你需要在项目根目录中创建 livejq.toml 文件。

它包含 labelslabels 是可以应用 -f / --filter 标志的过滤标签。

示例配置文件

# livejq.toml

allow = ["name"] # default

[network-fail]  # -f network-fail
allow = ["failed"]

[memory-info] # -f memory-info
allow = ["memory"]

然后以以下方式运行应用程序

./your_program | livejq -f network-fail

# you can apply multiple filters
./your_program | livejq -f network-fail memory-info

如果没有创建 label,则使用 default。对于每个标签,你只能允许或禁止,不能两者兼有。

如果在运行程序时未使用 flag,则使用 default 标志。

这里 | 用于将 my_program 的输出作为输入传递到 livejq

依赖关系

~1.8–2.8MB
~55K SLoC