有没有 读取 json 文件根据 js 表达式 显示结果的工具

2022-07-23 12:15:10 +08:00
 975779964

需求

比如我 有一个 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 文件 自动补全出来

我已知的工具

可以用 js 的语法, 已经和我要的很像了 ,但是 他的 js 的关键字还有 json 的 field 不能补全

而且 最新版本是拿 golang 重写了 ,竟然把这个 交互模式 的特性去掉了……


所以想问有没有 满足我这个需求的工具呢?

1068 次点击
所在节点    问与答
5 条回复
christin
2022-07-23 21:51:35 +08:00
自己用 js 写一个?
wxf666
2022-07-24 02:59:14 +08:00
用过 jq ,语法是有点绕,功能还算凑合。好像是没有交互,自然也没有补全


$ jq '.data[].name' test.json

"name1"
"name2"
"name3"


$ jq -r '[.data[].name]' test.json

[
 "name1",
 "name2",
 "name3"
]
wxf666
2022-07-24 03:03:40 +08:00
噢,还有个操作二

$ jq '[.data[] | select(.age | tonumber > 1)][0]' test.json

{
 "name": "name2",
 "age": "2"
}
975779964
2022-07-25 07:38:33 +08:00
@wxf666 啊, 这个看着就头疼 ,还得学习 jq 的语法 ,那应该是 没有 这样的工具了 ,我还是先用 fx 吧
faketemp
2022-10-14 08:58:04 +08:00
@975779964 utools 的官方 json 编辑器插件就是用 js 过滤数据的
只是没有你说的"自动补全"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868174

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX