Skip to content

Latest commit

 

History

History
147 lines (109 loc) · 3.43 KB

File metadata and controls

147 lines (109 loc) · 3.43 KB

jsonskim

CI License: MIT

English

UNIX 风格的 JSON 结构提取器 — 塌陷数组、截断字符串,方便人类/LLM 阅读理解。

关键词: JSON 结构提取, JSON Schema 生成, 大 JSON 查看器, LLM 上下文优化, JSON 骨架提取, 生产数据分析, API 响应结构

特性

  • 🚀 单文件二进制 — 零依赖,约 700KB 静态可执行文件
  • 📦 数组塌陷 — 仅保留数组的前 N 个元素
  • ✂️ 字符串截断 — 自动截断超长字符串
  • 🔧 UNIX 哲学 — 支持 stdin/stdout,可与其他工具组合
  • 🎯 LLM 友好 — 输出优化,便于 AI/人类理解

安装

预编译二进制

GitHub Releases 下载。

平台 文件名
Windows x64 jsonskim-windows-x86_64.exe
Linux x64 jsonskim-linux-x86_64
macOS x64 jsonskim-darwin-x86_64
macOS ARM jsonskim-darwin-aarch64

从源码编译

cargo install --path .

使用方法

# 从文件读取
jsonskim data.json

# 从标准输入读取
cat huge_production_data.json | jsonskim

# 配合 curl 使用
curl -s https://api.example.com/data | jsonskim

参数说明

用法: jsonskim [选项] [文件]

参数:
  [文件]  输入 JSON 文件 (未指定则从 stdin 读取)

选项:
  -l, --limit <N>         数组塌陷限制: 保留前 N 个元素 [默认: 1]
  -s, --string-limit <N>  字符串截断长度 [默认: 64, 0 = 不截断]
  -c, --compact           输出紧凑 JSON
  -h, --help              显示帮助
  -V, --version           显示版本

使用示例

# 默认设置提取结构
jsonskim production_log.json

# 保留 2 个数组样本,字符串截断 100 字符
jsonskim -l 2 -s 100 data.json

# 紧凑输出供 LLM 使用
cat api_response.json | jsonskim -c

# 不截断字符串
jsonskim -s 0 config.json

输出示例

输入 (假设有百万用户):

{
  "status": "success",
  "users": [
    {"id": 1, "name": "Alice", "bio": "很长的个人简介...1000字符..."},
    {"id": 2, "name": "Bob", "bio": "另一个很长的简介..."},
    "... 还有 10000 个用户 ..."
  ],
  "logs": ["日志1", "日志2", "... 还有 5000 条日志 ..."]
}

输出 (jsonskim -l 1 -s 20):

{
  "status": "success",
  "users": [
    {
      "id": 1,
      "name": "Alice",
      "bio": "很长的个人简介...1000字...<truncated_len_1000>"
    }
  ],
  "logs": ["日志1"]
}

应用场景

场景 命令
LLM 上下文准备 cat api.json | jsonskim -c | clip
API Schema 发现 curl api.example.com | jsonskim
日志结构分析 jsonskim -l 3 huge_log.json
文档生成 jsonskim -s 0 sample.json > schema.json

MCP 集成

通过 MCP (Model Context Protocol) 使用 jsonskim:

{
  "mcpServers": {
    "jsonskim": {
      "command": "npx",
      "args": ["-y", "jsonskim-mcp"]
    }
  }
}

详见 mcp/README.md

相关工具

  • jq — JSON 查询和转换
  • gron — 让 JSON 可 grep

许可证

MIT