即从提取到json数组对象中再继续做提取(提前的值没有key)
如下图,我们的目标是提取绿色框里面的内容。这样的数据有10个,我们的终极目标是提取出这10个内容
先提它的上级rows,比较简单,因为rows全局唯一,因此用$..rows,就可以提取出来了
rows里面是由10个内容组成的json数组,这里面不是key:value这种形式,就比较麻烦了
因为想要提取的内容在数组中的位置固定,此时就可以使用数组下标的方式进行提取
使用$..rows[0] ,提取rows里面的第一个数组
使用$..rows[0][2],提取rows里面第一个数组第三个值的内容,就能得到我们想要的绿色框中的内容。
重复写类似$..rows[0][2]这个json表达式,就可以提取10个内容,但是如果内容太多怎么办,我们的目标是全部,接着往下看
$..rows[-1][2]就是:倒数第一个数组中第三个字段的内容
$..rows[-1][-3]就是:倒数第一个数组中倒数第三个字段的内容
$..rows[0,9][2] 就是:倒数第一个和第10个数组中第三个字段的内容
好,那么想提取全部数组的第三个内容肯定是可以实现的啦
$..rows[*][2] ,就是提取所有数组中第三个字段的内容,效果如下
实际使用方法,使用$..rows[*][2]匹配到所有数组中第三个字段的内容,使用billno_1就是取第一个数组中的第三个字段,效果如下
后续使用${billno_1},就可以得到想要的结果啦。
至此:使用$..rows[*][2]匹配到所有数组中第三个字段,调用时使用${billno_1}和${billno_2},就可以拿到各个数组中我们想要的内容了