Skip to content

实用示例

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 fjq . 不是竞争关系,是兄弟工具。一起用:

bash
> echo '{"users":[{"id":1},{"id":2}]}' | jkit f | jq '.users[].id'
1
2

jkit 解决"我就想看一眼这个 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

最后更新: