$..name
表示递归查找所有NAME
$..*
表示递归查找所有值
$.data.stu[*].name
表示取所有的学生name
$.data.stu[0,2].name
表示取第1个和第3个元素的name
$.data.stu[0:2].name
表示取第1到第3个元素的name(不包括第3个,左闭右开)
$.data.stu[0:].name
不指定end就是找到全部
$.data.stu[-1:-2].name
从倒数第1个到倒数第2个
$.data.stu[-3:].name
从倒数第3个到最后一个
$.data.student[?(@.sex=="1")]
取当前数组中所有性别为1的数据
$.data.student[?(@.name=~/张.*/)]
取姓为张的
$.data.student[?(@.name=~/.*张.*/)]
取有张字的
@.key=~/正则表达示/,表示某一个节的值能够匹配得上
$.data.student[?(@.grade.max()>60)]
取成绩中最大的大于60的数据(取至少一门成绩及格的)
@ 表示当前节点,即数组节点
== != < > <= =>
=~ 正测匹配
in
$.data.student[?(@.age in [25.26])]
取年纪在25,26的数据 等价于$.data.student[?(@.age==25 || @.age==26 )]
not in
$.data.student[?(@.age not in [25.26])]
取年纪在25,26的数据 等价于$.data.student[?(@.age!=25 && @.age!=26 )]
Subsetof
$.data.student[?(@.hobby Subsetof ["11","22"])]
hobby的值为右边的子集的数据