使用 jsonpath 提取 profileId 的列表

Extract a list of profileId's using jsonpath

我有以下 JSON 对象 r2,

[
   {
      "reserva_id":"200",
      "estancias":[
         {
            "reserva_estancia":"266",
            "huespedes":[
               {
                  "reserva_huesped":"272",
                  "reserva_estancia":"266",
                  "numero_huesped":"1",
                  "huesped":"123",
                  "huesped_nombre":"dos dos, dos",
                  "rfid":null
               },
               {
                  "reserva_huesped":"276",
                  "reserva_estancia":"266",
                  "numero_huesped":"2",
                  "huesped":"183",
                  "huesped_nombre":"MUESTRA MUESTRA, CARMEN",
                  "rfid":null
               }
            ]
         }
      ]
   },
   {
      "reserva_id":"201",
      "estancias":[
         {
            "huespedes":[
               {
                  "reserva_huesped":"273",
                  "reserva_estancia":"267",
                  "numero_huesped":"1",
                  "huesped":"148",
                  "huesped_nombre":"MUESTRA MUESTRA, CARMEN",
                  "rfid":null
               },
               {
                  "reserva_huesped":"277",
                  "reserva_estancia":"267",
                  "numero_huesped":"2",
                  "huesped":"187",
                  "huesped_nombre":"TEST TEST, TESTCIVITFUN",
                  "rfid":null
               }
            ]
         }
      ]
   }
]

我正在尝试为每个预订获取第一个 huesped,为此我正在使用以下脚本来创建一个名为 profiles 的列表并存储 profileId:

def profiles = jsonpath(r2,'$..[:].estancias[:].huespedes[0].huesped')

输出应如下所示:

[
  "123",
  "148"
]

但是,当我打印 profiles.text 时,我得到了 estancias 对象的所有内容,而不仅仅是 huesped 数字。

当使用 Jayway JSON像这样的路径时,我得到了想要的输出:

$..[*].estancias[*].huespedes[0].huesped

您可以尝试使用 JSON here online.

的路径表达式