V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
975779964
V2EX  ›  问与答

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

  •  1
     
  •   975779964 · Jul 23, 2022 · 1534 views
    This topic created in 1374 days ago, the information mentioned may be changed or developed.

    需求

    比如我 有一个 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 重写了 ,竟然把这个 交互模式 的特性去掉了……


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

    5 replies    2022-10-14 08:58:04 +08:00
    christin
        1
    christin  
       Jul 23, 2022 via iPhone
    自己用 js 写一个?
    wxf666
        2
    wxf666  
       Jul 24, 2022
    用过 jq ,语法是有点绕,功能还算凑合。好像是没有交互,自然也没有补全


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

    "name1"
    "name2"
    "name3"


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

    [
     "name1",
     "name2",
     "name3"
    ]
    wxf666
        3
    wxf666  
       Jul 24, 2022   ❤️ 1
    噢,还有个操作二

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

    {
     "name": "name2",
     "age": "2"
    }
    975779964
        4
    975779964  
    OP
       Jul 25, 2022
    @wxf666 啊, 这个看着就头疼 ,还得学习 jq 的语法 ,那应该是 没有 这样的工具了 ,我还是先用 fx 吧
    faketemp
        5
    faketemp  
       Oct 14, 2022
    @975779964 utools 的官方 json 编辑器插件就是用 js 过滤数据的
    只是没有你说的"自动补全"
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   952 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 21:50 · PVG 05:50 · LAX 14:50 · JFK 17:50
    ♥ Do have faith in what you're doing.