使用 jq 从数组 json 中选择值

1 json jq

我有以下 json 文件,该文件的值

{
  "data": [
      {
          "id": 60573936,
          "timeCreated": 1615458564202,
          "timeUpdated": 1615458564202,
          "name": "name1",
          "desiredStatus": "UNMANAGED",
          "defaultStatus": "STARTED",
          "targets": [
              {
                  "id": 2520949,
                  "lastReportedStatus": "STOPPED"
              }, {
                  "id": 702881,
                  "lastReportedStatus": "STARTED"
              }
          ]
      }, {
          "id": 60574370,
          "timeCreated": 1615458812565,
          "timeUpdated": 1615458812565,
          "name": "name2",
          "desiredStatus": "UNMANAGED",
          "defaultStatus": "STARTED",
          "targets": [
              {
                  "id": 2520949,
                  "lastReportedStatus": "STARTED"
              }, {
                  "id": 702881,
                  "lastReportedStatus": "STOPPED"
              }
          ]
      }, {
          "id": 60574329,
          "timeCreated": 1615458775053,
          "timeUpdated": 1615458775053,
          "name": "name3",
          "desiredStatus": "UNMANAGED",
          "defaultStatus": "STARTED",
          "targets": [
              {
                  "id": 2520949,
                  "lastReportedStatus": "STOPPED"
              }, {
                  "id": 702881,
                  "lastReportedStatus": "STARTED"
              }
          ]
      }
    ]
  }
Run Code Online (Sandbox Code Playgroud)

我想仅在“id”=“2520949”和“lastReportedStatus”=“STOPPED”时使用 jq 提取“name”值。在我的示例中,我想获取“name1”和“name3”。我尝试使用选择功能,但无法满足“id”和“lastReportedStatus”键之间的“and”条件。jq 的正确代码是什么?

cho*_*oba 5

jq '.data[] 
    | select(.targets[] | .lastReportedStatus=="STOPPED" and .id==2520949)
    | .name' file.json
Run Code Online (Sandbox Code Playgroud)