实用示例
jkit 与终端里其他工具的真实组合用法。
探索一坨巨大的 API 响应
接到 API 返回一大坨 JSON,先用 cut 看整体结构,再用 get 钻进去。
bash
> curl -s https://api.example.com/data | jkit c 2
{
"code": 0,
"data": {
"items": [ 50 items array ],
"total": 50
},
"message": "ok"
}
> curl -s https://api.example.com/data | jkit g data.items.0
{
"id": 1,
"name": "first"
}把 JSON 值当 shell 变量用
jkit g 字符串叶子裸打印,捕获很自然:
bash
> NAME=$(curl -s https://api.example.com/user | jkit g name)
> echo "Hello, $NAME"
Hello, alice干净地 diff 两份 JSON
cut 排序键,所以同样的逻辑内容渲染结果总是一样 —— 不会因为 key 顺序随机产生 diff 噪声。
bash
diff <(jkit c < before.json) <(jkit c < after.json)美化剪贴板里的 JSON
经典操作。从浏览器开发者工具的 Network 面板里复制响应,然后:
bash
jkit f从 markdown bullet list 生成 JSON 数组
复制 bullet 列表后:
bash
> jkit m -u
[
"Refactor the auth flow",
"Migrate the cache layer",
"Write the post-mortem"
]需要查询时管道给 jq
jkit f 和 jq . 不是竞争关系,是兄弟工具。一起用:
bash
> echo '{"users":[{"id":1},{"id":2}]}' | jkit f | jq '.users[].id'
1
2jkit 解决"我就想看一眼这个 JSON"那 80% 的场景,jq 解决真正需要查询过滤的那 20%。
提交前折叠看一眼大配置文件
文件太大?用排序好的折叠视图先扫一遍:
bash
jkit c 3 < config.json | less在脚本里校验 JSON
jkit 解析失败时退出码 1,可以当低成本 validator 用:
bash
if ! jkit f < payload.json > /dev/null 2>&1; then
echo "payload.json 不是合法 JSON" >&2
exit 1
fi