![](/img/trans.png)
[英]How to generate pojo with Lombok for complex json in Eclipse
[英]Disserializing POJO with Lombok sending complex JSON using Rest Assured
這是我第一次使用 POJO 和 Lombok 與 Rest 保證和復雜 JSON。
我決定使用這種方法,因為 JSON 包含許多字段..
示例 JSON
{"records":[{"key":"1563106","value":{"ACTION":"A"}}]}
“值” object 包含大約 50 個字段。
使用 POJO 我創建了 3 個類
public class TransactionFields{
private List<RecordsItem> records;}
public class RecordsItem {
private Object value;
private String key;}
public class Value{
private String ACTION;}
通過為每個人添加注釋
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
然后我嘗試使用 Rest Assured 發送一個 POST 請求並這樣做:
創建一個值 object 並添加一個值(我將在這里重復更多字段)
Value value = Value.builder().ACTION("A").build();
RecordsItem records = RecordsItem.builder()
.key("1563106")
.value(value)
.build();
我發送一個 POST 請求
given()
.contentType("application/vnd.kafka.json.v2+json")
.body(records).
when().post("V02")
.then().log().all().statusCode(200);
結果,我得到了錯誤
"error_code": 422,
"message": "Unrecognized field: value"
這就是問題開始的地方。 我無法弄清楚我做錯了什么。 和最重要的問題。 我是否正確使用了構建模式? 正確的 object 是否傳遞給 POST ()?
請幫我弄清楚。 簡單的 JSON 示例沒有問題,但我沒有找到包含對象數組的 JSON 示例。
我明白我的錯誤是什么...
在這個實現中,我需要將值 object 的類型更改為 RecordsItem class 中的值。
public class RecordsItem {
private Value value;
private String key;
並創建另一個 TransactionFields 類型的 object
TransactionFields transactionFields = TransactionFields.builder()
.records(Arrays.asList(records))
.build();
然后在 post 請求正文中使用 transactionFields 變量
.body(transactionFields)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.