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

想要找一种清洗 json 数据的工具

  •  
  •   fusi · Dec 30, 2024 · 1990 views
    This topic created in 488 days ago, the information mentioned may be changed or developed.

    如题,有这样一个需求: 后端响应了一个数据,但是我只关心里面的某几个字段,这个很好实现,直接使用 jsonPath\jmesPath 即可 但是这些字段有的存在于子数据中,我又想要保留父子级关系的情况下获取部分字段,使用上面的工具就变得比较繁琐,例如:

    {
      "a": 1,
      "b": 2,
      "children1": [
        {
          "a": 2,
          "b": 3,
          "d": 4,
          "children1": [
            {
              "b": 5,
              "e": 6
            }
          ]
        }
      ],
      "children2": [
        {
          "b": 5
        }
      ]
    }
    

    上面的数据中,我只想要 b 的值,同时我只关心 children1 的子集,而不关心其他的 b 值 我需要一个工具,能够标记哪些是目标数据,以及哪些是需要迭代的父数据,例如,我只在最外层的 d 中加一个标识符: "&b": 4 然后在 children1 中加一个标识符: "@children1":[...] 那么这个工具会自动采集最外层的 b 以及对应的 children1 中的 b ,就是说,会遍历整个数据,找到&标记的值,如果还有 @标记的值,则进去继续查找&标记的值,最后输出的格式如下:

    {
      "b": 2,
      "children1": [
        {
          "b": 3,
          "children1": [
            {
              "b": 5,
            }
          ]
        }
      ]
    }
    

    当然也不是一定要标记,如果有 ui 页面能够点选那更是再好不过,只是一个举例 这是一个很小众的需求,但是我还是想要先问一下,万一有人以及做出来这个功能了呢?如果实在没有,再考虑自己写

    7 replies    2024-12-30 13:38:10 +08:00
    dongsuo
        1
    dongsuo  
       Dec 30, 2024
    我发给 ChatGPT 之后它帮我写出来了……
    虽然我没有验证它的代码,但是我觉得你可以试试,结果我就不贴在这了,以防违反社区规范
    isSamle
        2
    isSamle  
       Dec 30, 2024
    听着有点像 Xpath
    kamilic
        3
    kamilic  
       Dec 30, 2024
    可找 ai ,语义转换他最擅长了
    zizon
        4
    zizon  
       Dec 30, 2024
    jsonpath 路径打平,正则匹配.
    mumbler
        5
    mumbler  
       Dec 30, 2024   ❤️ 1
    把你需求给 bolt.new 做一个 H5 工具,2 分钟就做好了,试试看吧
    https://warm-rugelach-33b8eb.netlify.app/
    Maboroshii
        6
    Maboroshii  
       Dec 30, 2024
    先反序列化,再序列化
    shakaraka
        7
    shakaraka  
    PRO
       Dec 30, 2024 via iPhone
    序列化,反序列化,deepkit 即可
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2473 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 08:01 · PVG 16:01 · LAX 01:01 · JFK 04:01
    ♥ Do have faith in what you're doing.