【发布时间】:2021-08-15 02:06:56
【问题描述】:
在 SpringBoot 中使用 JSONObject 作为@RequestBody 发出POST 请求时,我遇到了一些麻烦。它总是返回一个空的JSON 对象,如下所示:
@PostMapping
@ResponseBody
public ResponseEntity<Travel> create(@RequestBody JSONObject travel) {
try {
System.out.println(travel.toString());
.
.
.
.
但我要求邮递员中的所有字段:
提前感谢所有帮助。
【问题讨论】:
-
你试过
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)吗? -
@Turing85 是的,同样的事情也会发生。
-
尝试使用专用 POJO 类或
Map而不是JSONObject。 -
使用
String代替JSONObject,然后使用JSONObject travelObj = new JSONObject(travel);。看起来您的 JSONObject 无法反序列化传入的 json 字符串。还要检查 org.json JSONObject 版本与 spring 版本兼容性,最后一个选项可能是使用来自 Gson 的 JSONObject,我认为它具有内置的反序列化功能。 -
@AlexShesterov 谢谢,我创建了一个 AddTravelDTO.java 并在 RequestBody 中使用它,就像一个魅力。
标签: java json spring-mvc