JMESPath-无法查询另一个列表中的列表中的值

时间:2019-12-06 12:45:42

标签: jmespath

给出以下JSON:

[
  {
    "json": {
       "buildInfo": [
         {
           "first": "James",
           "last": "d"
         },
         {
           "first": "James2",
           "last": "d2"
         }
       ]
     },
     "status": 200
   },
   {
    "json": {
       "buildInfo": [
         {
           "first": "Jacob",
           "last": "e"
         },
         {
           "first": "Jacob2",
           "last": "e2"
         }
       ]
    },
    "status": 200
  }
]

我试图查询内部列表键json.buildInfo。“ last”的值,然后提取多个键值,即json.buildInfo。*。“ first”。无论如何,我都在努力使它起作用。

我可以使用展平运算符找到数据...

[*].json.build[].last[contains(@,`d`)]

...但是我无法解决如何对此执行查询,然后让我获得额外的信息列表“第一个”键。在buildInfo上没有内部列表的json上,我可以做类似的事情

[?json.buildInfo.last==`d`].json.buildInfo.first

切换到buildInfo项列表非常困难。

有人可以在这里为我提供指导吗?

谢谢

1 个答案:

答案 0 :(得分:0)

好的,这行得通-但不确定我知道为什么...

[?json.buildInfo [?contains(last,'d2')]]。json.build_info [] | [?last =='d']。first