我正在開發一個 Spring Boot 應用程式,它允許用戶將邏輯運算式上傳到服務器。網路應用程式允許他們直觀地創建運算式。Web 應用程式的結果如下所示
{
"id": "someId",
"fullexpression": {
"left": "a",
"operator": "AND",
"right": {
"left": {
"left": "x",
"operator": "AND",
"right": "y",
}
"operator": "OR",
"right": "z"
}
}
}
上面的例子描述了運算式a AND ((x AND y) OR z)。
我找到了一篇 Baeldung 文章,上面寫著:
我們使用@RequestBody 注釋的型別必須對應于從我們的客戶端控制器發送的 JSON
如果我正確理解了這篇文章,則無法直接執行此操作。構建允許 aRequestBody像這樣嵌套的 Spring Boot rest 控制器的最佳方法是什么?當然,我總是可以在客戶端將 JSON 轉換為字串,然后在 rest 控制器中決議它,但這看起來并不優雅。
uj5u.com熱心網友回復:
將 RequestBody 引數定義為 JsonNode:
public <something> myService(@RequestBody JsonNode jsonNode) {}
uj5u.com熱心網友回復:
您可能會使用如下所示的類:
public class Form {
private String id;
private Expression fullexpression;
// constructor, getters and setters
}
其中類 Expression 有欄位 left、operator (String) 和 right。
由于左右欄位的型別可以是字串或運算式,我建議您將它們的型別設定為 Map<String,Expression> 或 JsonNode.. 但我還沒有測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/329751.html
上一篇:在陣列python/pyspark中的兩個相鄰數字之間創建col中的差異陣列
下一篇:Quartz集成測驗和事務
