jless:5.4k⭐的终端 JSON 查看器
在命令行处理 JSON 数据时,最常见的痛点是输出太长难以阅读,或者需要用 jq 写复杂的查询语句才能提取需要的信息。jless 就是为解决这个问题而生的终端 JSON 查看器。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | PaulJuliusMartinez/jless |
| Stars | 5.4k |
| 语言 | Rust |
| 特点 | 交互式浏览、Vim 键位、实时搜索 |
| 最后更新 | 2天前 |
它解决了什么问题
当你面对一个几 MB 的 JSON 文件时,传统的做法是用 cat 直接输出,结果是满屏滚动的文本;或者用 jq '.' 美化输出,但依然难以快速定位到关心的字段。jless 把 JSON 变成了一个可以交互浏览的结构化文档,类似于 less 命令对文本文件的作用,但专为 JSON 优化。
核心功能
交互式树形浏览
jless 会把 JSON 以折叠的树形结构呈现,可以用方向键展开或收起节点,直观地理解数据的层级关系。
Vim 风格键位
如果你熟悉 Vim,jless 的键位会让你感到亲切:j/k 上下移动,h/l 展开/收起节点,gg 回到顶部,G 跳到底部。学习成本极低。
强大的搜索能力
按 / 进入搜索模式,支持正则表达式。更实用的是,搜索结果会高亮显示,并且自动展开包含匹配内容的节点,无需手动一层层展开。
数据路径显示
屏幕底部会实时显示当前光标所在位置的 JSONPath(如 .users[3].name),这对编写 jq 查询或代码时定位字段非常有帮助。
行号模式
可以切换显示行号,方便与其他工具(如 grep -n)配合使用。
快速开始
# macOS
brew install jless
# Arch Linux
yay -S jless
# 从源码安装
cargo install jless
基本用法:
# 查看文件
jless data.json
# 配合管道使用
curl -s https://api.example.com/data | jless
# 查看特定路径
echo '{"users": [{"name": "Alice"}]}' | jless
常用快捷键:
j/k或↓/↑:上下移动h/l或←/→:收起/展开节点/:搜索n/N:下一个/上一个匹配q:退出y:复制当前路径到剪贴板
与同类工具对比
| 工具 | Stars | 特点 |
|---|---|---|
| fx | 20.4k | 支持 JavaScript 脚本,功能更强大 |
| jq | 30k+ | 数据处理能力强,但非交互式 |
| jless | 5.4k | 纯浏览体验,零学习成本 |
如果你只是需要查看和探索 JSON 数据,jless 的专注让它成为最高效的选择。fx 更适合需要做复杂数据转换的场景,而 jq 则是处理 JSON 的瑞士军刀。
适用场景
- API 调试:查看接口返回的 JSON 结构,快速定位字段
- 日志分析:浏览结构化日志文件,按时间或级别过滤
- 配置文件检查:查看复杂的 JSON 配置,理解其结构
- 数据探索:初次接触陌生的 JSON 数据集时,快速建立认知
局限
- 只读工具,不支持修改 JSON 内容
- 不支持 YAML 或其他格式(需要先用其他工具转换)
- 超大型文件(数百 MB)性能会下降
总结
jless 是一个把”专注”做到极致的工具。它没有试图成为全能的 JSON 处理器,而是把”查看”这个单一场景做到了极致。如果你经常在终端处理 JSON 数据,它值得一个常驻工具箱的位置。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/PaulJuliusMartinez/jless |
| 许可证 | MIT |
| 语言 | Rust |
| 维护者 | @PaulJuliusMartinez |
| 官网 | https://jless.io |