Как преобразовать ответ JSON в список Java - использование Rest Assured для тестирования API

У меня есть вложенный ответ JSON. Скриншот JsonResponse

Я хочу получить словарь в 0-м месте списка, а затем получить из него определенный элемент. Например, В ответ, {0} и {1}, я хочу получить в результате полный {0}. Затем из {0} я хочу извлечь только значение «Id».
Я не хочу каждый раз использовать JsonPath.read (JsonResponse String, JSON Path). Итак, ищем простую и лучшую альтернативу.

Как преобразовать ответ JSON в список Java. Ниже приведен ответ.

Response resp = given().header("Authorization", "Bearer "+"dwded").
                accept(ContentType.JSON).
                when().
                get("https://example.com");      
                return resp;

person D Bhatnagar    schedule 15.12.2017    source источник
comment
Я бы написал его в editor.swagger.io, а затем попросил бы редактор сгенерировать для вас java-код.   -  person dskow    schedule 15.12.2017
comment
Если у вас есть класс Java, представляющий ваш ответ, вы можете использовать Response # readEntity, а затем просто получить к нему доступ, как к любому другому объекту Java.   -  person Matthew Clark    schedule 15.12.2017
comment
@ Мэтью Кларк, как это сделать. Извините, я не понял. Я использую. Будьте уверены. Можно ли его здесь использовать?   -  person D Bhatnagar    schedule 15.12.2017


Ответы (2)


Для тестирования веб-API или конечной точки REST я бы порекомендовал карате.

Так становится просто:

* def id = response[0].Id
person Peter Thomas    schedule 15.12.2017
comment
Спасибо, что познакомили меня с новым миром. Я не знал о карате. Я очень взволнован и использую его сейчас. - person D Bhatnagar; 15.12.2017
comment
@DBhatnagar великолепно, распространяйте слово. просто любопытно, почему вы приняли другой ответ. проголосовать хотя бы за: P - person Peter Thomas; 16.12.2017

В примере с домашним животным редактора чванства.

  responses:
    200:
      description: "successful operation"
      schema:
        type: "array"
        items:
          $ref: "#/definitions/Pet"

Модель создается из

  Pet:
    type: "object"
    properties:
      name:
        type: "string"
        example: "doggie"

Это сгенерировало класс java

public class Pet   {

  @JsonProperty("name")
  private String name = null;

API показывает REST, который возвращает объект, который может быть показан как массив объектов json.

    ResponseEntity<List<Pet>> findPetsByStatus( @NotNull@ApiParam(value = "Status values that need to be considered for filter", required = true, allowableValues = "available, pending, sold") @RequestParam(value = "status", required = true) List<String> status);
person dskow    schedule 15.12.2017