动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

JSONPath正则表达式不以foo开头

07-29 11:52 1187浏览
举报 T字号
  • 大字
  • 中字
  • 小字

JSON(简体)如下所示:

[
    {"name" : "foobar",
      "id" : 123
    },
    {"name" : "bar",
      "id" : 123
    },
    {"name" : "foobar",
      "id" : 456
    }, ...
]

正在使用https://jsonpath.herokuapp.com/尝试找到正确的JSONPATH语法,以过滤掉所有不以foo开头且id == 123的内容。

得到它来过滤那些开始与那些foo很简单:

$..[?(@.name =~ /foo.*/i)]

这将产生以下结果:

[
   {
      "name" : "foobar",
      "id" : 123
   },
   {
      "name" : "foobar",
      "id" : 456
   }
]

可以通过添加其他过滤器来摆脱ID 456,如下所示:

$..[?(@.name =~ /foo.*/i && @.id==123)]

但是,与以foo开头的名称相反,该如何做呢? 希望所有不以foo开头的实体。

尝试过这样的事情:

$..[?(!@.name =~ /foo.*/i && @.id==123)]

至少将其解析为有效的JSONPATH,并且应该使过滤器无效,但是出于某种原因,它仍然很乐意仅报告foobar条目:

[
   {
      "name" : "foobar",
      "id" : 123
   }
]

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看JSONPath视频教程哦!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵988
程序员代码小兵988

67篇文章贡献228982字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java初学者学习方法

代码小兵64503-29 11:46

两道经典算法问题

代码小兵51603-29 13:18

Java中模拟高并发的方法

代码小兵87208-06 11:36

高并发编程基础知识

代码小兵27908-06 11:30

JsonPath使用方法

代码小兵34507-29 13:19

发评论

举报

0/150

取消