Jsonpath语法

Jsonpath语法JsonPath用法示例操作符符号描述$查询的根节点对象,用于表示一个json数据,可以是数组或对象@过滤器(filterpredicate)处理的当前节点对象*获取所有节点.获取子节点…递归搜索,筛选所有符合条件的节点?()过滤器表达式,筛选操作[start:end]数组片段,区间为[start,end),不包含en…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

JsonPath用法示例

  • 操作符
符号 描述
$ 查询的根节点对象,用于表示一个json数据,可以是数组或对象
@ 过滤器(filter predicate)处理的当前节点对象
* 获取所有节点
. 获取子节点
递归搜索,筛选所有符合条件的节点
?() 过滤器表达式,筛选操作
[start:end] 数组片段,区间为[start,end),不包含end
[A]或[A,B] 迭代器下标,表示一个或多个数组下标
  • 函数

可以在JsonPath表达式执行后进行调用,其输入值为表达式的结果。

    名称                   描述
min() 获取数值类型数组的最小值
max() 获取数值类型数组的最大值
length() 获取数值类型数组的长度,例如$.data.length()
  • 过滤器

过滤器是用于过滤数组的逻辑表达式。

  操作符             描述
== 等于
!= 不等于
< 小于
in 所属符号,例如[?(@.type in [“小雨”,“中到大雨”])]
nin 排除符号
=~ 判断是否符合正则表达式,例如[?(@.type =~ /^小雨.*/)]
响应体:
BODY
{
   "code" : 200,
   "msg" : "成功!",
   "data" : {
      "yesterday" : {
         "date" : "13日星期一",
         "high" : "高温 23℃",
         "fx" : "东北风",
         "low" : "低温 18℃",
         "fl" : "<![CDATA[3-4级]]>",
         "type" : "小雨"
      },
      "city" : "杭州",
      "aqi" : null,
      "forecast" : [
         {
            "date" : "14日星期二",
            "high" : "24",
            "fengli" : "<![CDATA[3-4级]]>",
            "low" : "18",
            "fengxiang" : "东北风",
            "type" : "多云"
         },
         {
            "date" : "15日星期三",
            "high" : "22",
            "fengli" : "<![CDATA[3-4级]]>",
            "low" : "19",
            "fengxiang" : "东北风",
            "type" : "中到大雨"
         },
         {
            "date" : "16日星期四",
            "high" : "25",
            "fengli" : "<![CDATA[<3级]]>",
            "low" : "19",
            "fengxiang" : "东北风",
            "type" : "多云"
         },
         {
            "date" : "17日星期五",
            "high" : "30",
            "fengli" : "<![CDATA[<3级]]>",
            "low" : "22",
            "fengxiang" : "无持续风向",
            "type" : "小雨"
         },
         {
            "date" : "18日星期六",
            "high" : "33",
            "fengli" : "<![CDATA[<3级]]>",
            "low" : "19,
            "fengxiang" : "无持续风向",
            "type" : "多云"
         }
      ],
      "ganmao" : "各项气象条件适宜,无明显降温过程,发生感冒机率较低。",
      "wendu" : "21"
   }
}

Jetbrains全家桶1年46,售后保障稳定

用法示例:
  • 表达式:$…*

表示获取是所有的返回值。

  • 表达式:$.data.forecast[*].type 或 $.data…type

表示获取的是data下forecast数组中所有的type字段值。获取值为:[“多云”,“中到大雨”,“多云”,“小雨”,“多云”]

  • 表达式:$.data.forecast.length()

表示获取的是data下forecast数组长度。获取值为:5

  • 表达式:$.data.forecast[?(@.type == “小雨”)].date

表示获取的是data下forecast数组中天气类型为“小雨”的日期。获取值为:[“17日星期五”]

  • 表达式:$.data.forecast[?(@.type =~ /^小雨.*/)].date

表示以正则表达式过滤获取的是data下forecast数组中有“小雨”的日期。获取值为:[“15日星期三”]

  • 表达式:$.data.forecast[?((@.high <= “30”)&&(@.high >= “15”))].date

表示获取的是data下forecast数组中高温温度在25℃~30℃之间的日期。获取值为:[“16日星期四”,“17日星期五”]

  • 表达式:$.data.forecast[?((@.type == “小雨”)||(@.type == “中到大雨”))].date 或 $.data.forecast[?(@.type in [“小雨”,“中到大雨”])].date

表示获取的是data下forecast数组中天气类型为“小雨”或“中到大雨”的日期。获取值为:[“15日星期三”,“17日星期五”]

可以使用小工具验证你的表达式哦~ http://jsonpath.herokuapp.com/?path=$.store.book[

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210457.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图的四种最短路径算法

    图的四种最短路径算法本文总结了图的几种最短路径算法的实现:深度或广度优先搜索算法,弗洛伊德算法,迪杰斯特拉算法,Bellman-Ford算法1),深度或广度优先搜索算法(解决单源最短路径)从起始结点开始访问所有的深度遍历路径或广度优先路径,则到达终点结点的路径有多条,取其中路径权值最短的一条则为最短路径。下面是核心代码:[cpp] viewplain copyvoid dfs(int cur, int dst){ …

    2022年6月4日
    36
  • 软考总结「建议收藏」

    软考总结「建议收藏」软考总结

    2022年4月25日
    37
  • archwing任务流程_机器的武器任务流程

    archwing任务流程_机器的武器任务流程有两台机器 A,B 以及 K 个任务。机器 A 有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。两台机器最开始都处于模式 0。每个任务既可以在 A 上执行,也可以在 B 上执行。对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。求怎样分配任务并合理安排顺序,能使机器重启次数最少。输入格

    2022年8月10日
    18
  • 线段树详解 (原理,实现与应用)「建议收藏」

    线段树详解By岩之痕一:综述线段树是一种可以快速进行区间修改和区间查询的数据结构。点修改,区间修改和区间查询的复杂度都是O(log2(n))并且,线段树可以维护很多种类的信息。说到线段树就不得不提一下树状数组,树状数组维护的信息必须满足区间减法,因为树状数组只是维护1到X的信息,通过相减来得到区间信息,代码简单而且速度快,占用空间又少于线段树,所以一般情况下可以用树状数组的地方就

    2022年4月5日
    53
  • 2021年美赛A题翻译

    2021年美赛A题翻译美赛A题:真菌欢迎使用Markdown编辑器2021年美赛交流qq群:523820707需要电子版的可以关注关注公众号“1024遇见ta”:回复”A题”需要“美赛历年真题和特等奖论文集”的关注公众号“1024遇见ta”,回复“美赛”即可获得资源包,有条件的支持一下哈!欢迎使用Markdown编辑器2021年美赛交流qq群:523820707需要电子版的可以关注关注公众号“1024遇见ta”:回复“A题”需要“美赛历年真题和特等奖论文集”的关注公众号“1024遇见ta”,回复“美

    2022年5月4日
    62
  • Leetcode 611 javascript Valid Triangle Number

    Leetcode 611 javascript Valid Triangle Number

    2021年6月16日
    87

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号