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 (Model Context Protocol) 使用 jsonskim:
{
"mcpServers": {
"jsonskim": {
"command": "npx",
"args": ["-y", "jsonskim-mcp"]
}
}
}详见 mcp/README.md。