我有一个要求,一个restapi必须处理不同的json请求(30多个不同的请求)。客户端可以向这个端点发送任何json,这个api应该能够处理请求。每个请求都有唯一的id。
例如:请求1:
{“id”:“1”,“name”:“john”,
}
请求2:
{“id”:“2”,“name”:“john”,“lastname”:“cena”,“sex”:“f”,
}
请求3:
{“id”:“3”,“mobilenumber”:“09xx0”,“email”:nick@yahoo.com",
}
请求4:
{“id”:“4”,“pet”:“dog”,“color”:“black”,“sex”:“f”,
}
现在,如何读取这个api的requestbody?我们可以像下面那样使用jsonobject或jsonnode吗?
@PostMapping("/save-details")
public String postDetails(@RequestBody JSONObject request) {
return "";
}
@PostMapping("/save-details")
public String postDetails(@RequestBody JsonNode request) {
return "";
}
提前谢谢你的帮助!
4条答案
按热度按时间o2g1uqev1#
一个简单的解决方案是将请求作为json字符串接受,并使用对象Map器将其转换为所需的类型。
ztigrdn82#
具有转换和动态输入体的示例
响应示例:
zqry0prt3#
用@requestbody map<string,object>request读取json,通过gson或jackson等json解析器解析json。
sqxo8psd4#
你可以用这个