在命令行处理 JSON 数据时,最常见的痛点是输出太长难以阅读,或者需要用 jq 写复杂的查询语句才能提取需要的信息。jless 就是为解决这个问题而生的终端 JSON 查看器。

项目概览

属性内容
GitHubPaulJuliusMartinez/jless
Stars5.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特点
fx20.4k支持 JavaScript 脚本,功能更强大
jq30k+数据处理能力强,但非交互式
jless5.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