簡體   English   中英

從 rest 中提取一些字段保證響應

[英]extract some field from rest assured response

我有一個 ResponseBody object,它是這樣的:

"data": {
    "id": 123,
    "name": "georghe",
    "surname": "sue"
 } 

我可以忽略 id 字段嗎,因為我想將它與我的 json 數據進行比較,並且它不包含 id 字段。 我得到這樣的數據response.getBody().path("data").toString()但 id 也來了。

我試圖將 map 像這樣

response.getBody().path("data").as(Student.java)

但我不能使用路徑作為方法。(在我的學生 class 中,我在 id 上方使用 @jsonIgnore 注釋)

我嘗試了 2 種不同的風格,但它們都不起作用。你知道嗎?

學生 class:

Student class{
 private String name;
 private String surname;

 //getter and setters

}.

因此,如果您想忽略/避免在響應中包含 Id,@JsonIgnore 是正確的方法,但請確保您使用了正確的注釋:

com.fasterxml.jackson.annotation.JsonIgnore

前段時間我也遇到了同樣的情況,這是由於從錯誤的庫中導入注釋引起的(net.minidev.json.annotate)

更新:因此,如果您想從數據元素中提取學生 object,您可以執行以下操作:

final Student student = given()
    .header(YOUR_HEADER, YOUR_HEADER_VALUE)
.when()
    .get(YOUR_URL)
.then()
    .statusCode(200)
    .extract().jsonPath().getObject("data", Student.class)

您可以使用具有以下組成的 Mapstruct ( https://mapstruct.org/ ):

@Mapping(目標 = "id", 忽略 = true)

(文檔,第 3.2 節)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM