Извлечение списка идентификаторов профилей с помощью jsonpath

#groovy #jsonpath

#groovy #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 число.

Комментарии:

1. Где вы это используете? JMeter, SoapUI? Я не могу добавить дополнительные инструкции, поскольку я не знаю вашей среды.

Ответ №1:

При использовании JSONPath от Jayway подобным образом я получаю желаемый результат oputput:

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

Вы можете попробовать выражение пути с вашим JSON здесь, в Интернете.