java - Spring Boot 变量/嵌套请求体
问题描述
我正在开发一个允许用户将逻辑表达式上传到服务器的 Spring Boot 应用程序。Web 应用程序允许他们直观地创建表达式。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
如果我正确理解了这篇文章,就不可能直接这样做。构建允许RequestBody
像这样嵌套的 Spring Boot 休息控制器的最佳方法是什么?当然,我总是可以在客户端将 JSON 转换为字符串,然后在其余控制器中解析它,但这看起来并不优雅。
解决方案
将 RequestBody 参数定义为 JsonNode:
public <something> myService(@RequestBody JsonNode jsonNode) {}
推荐阅读
- javascript - ionic v3:通过相机扫描数字或文本
- javascript - 替换画布上的颜色
- javascript - 在 Bootstrap 按钮中调用 Javascript 函数
- php - WordPress 发布评级显示位置更改
- java - 网页抓取 Java
- java - 使用 RealmRecyclerViewAdapter 和拖放的移动动画
- python - 为什么 tkinter-buttons 全部禁用?
- r - 是否可以在 R 中可视化具有大量特征(> 50)的数据
- ios - 为 UIView 设置动画时自动调整 CAShapeLayer 的大小
- android - 奥利奥后台服务问题