我正在开发一个Spring应用程序,它允许用户将逻辑表达式上传到服务器。一个web应用程序允许他们可视化地创建表达式。这个web应用程序的结果如下所示
{
"id": "someId",
"fullexpression": {
"left": "a",
"operator": "AND",
"right": {
"left": {
"left": "x",
"operator": "AND",
"right": "y",
}
"operator": "OR",
"right": "z"
}
}
}
上面的示例描述了表达式a和(x和y)或z)。
我找到一个白龙文章,上面写着:
我们用@RequestBody注释注释的类型必须对应于客户端控制器发送的JSON。
如果我正确理解了这篇文章,就不可能直接这么做。构建允许像这样嵌套RequestBody
的Spring控制器的最佳方法是什么?当然,我总是可以在客户端将JSON转换成字符串,并在rest控制器中解析它,但这看起来并不优雅。
发布于 2021-10-21 16:30:35
将RequestBody参数定义为JsonNode:
public <something> myService(@RequestBody JsonNode jsonNode) {}
发布于 2021-10-21 16:51:48
您可以使用如下类:
public class Form {
private String id;
private Expression fullexpression;
// constructor, getters and setters
}
其中类表达式有左字段、运算符(字符串)和右字段。
由于左右字段的类型可以是字符串或表达式,我建议您将它们的类型设置为Map或JsonNode。但我还没试过。
https://stackoverflow.com/questions/69665561
复制相似问题