
比如我 有一个 test.json 文件 ,
{ "code":200, "data":[ { "name":"name1", "age":"1" }, { "name":"name2", "age":"2" }, { "name":"name3", "age":"3" } ] } 操作 1 cat test.json | tools .data.map(x=>x.name)
读到的结果就是
[ "name1", "name2", "name3", "name4" ] 操作 2 cat test.json | tools .data.filter(x=>x.age>1)[0]
读到的结果就是
{ "name": "name2", "age": "2" } 并且在 操作的工程中 点 data, 点 filter ,点 x.age 这些字段 会根据 json 文件 自动补全出来
jq https://stedolan.github.io/jq/tutorial/ 这个工具 语法和 js 不一样,而且 他好像 没有补全 ,我没有用明白 。。。
fx https://github.com/antonmedv/fx 这个工具 js 版本 是有个 交互模式 ,
可以用 js 的语法, 已经和我要的很像了 ,但是 他的 js 的关键字还有 json 的 field 不能补全
而且 最新版本是拿 golang 重写了 ,竟然把这个 交互模式 的特性去掉了……
所以想问有没有 满足我这个需求的工具呢?
1 christin Jul 23, 2022 via iPhone 自己用 js 写一个? |
2 wxf666 Jul 24, 2022 用过 jq ,语法是有点绕,功能还凑合。好像是没有交互,自然也没有补全 $ jq '.data[].name' test.json "name1" "name2" "name3" $ jq -r '[.data[].name]' test.json [ "name1", "name2", "name3" ] |
3 wxf666 Jul 24, 2022 噢,还有个操作二 $ jq '[.data[] | select(.age | tonumber > 1)][0]' test.json { "name": "name2", "age": "2" } |