我试图通过在Spring Boot中反序列化JSON消息来创建Java对象。我有一个班级:
public class Status implements Serializable {
private int uptime;
}
然后我有一个Rest Controller:
@RestController
public class StatusReceiver {
@RequestMapping(value = "/poststatus", method = RequestMethod.POST)
public @ResponseBody Status storeStatus(@RequestBody Status statusMessage) {
System.out.println("Uptime: " + statusMessage.getUptime());
return statusMessage;
}
}
我绝对不了解我在这里所做的一切。我希望控制器在收到消息时创建一个Status对象并将其存储在数据库中。
此代码的输出为:
Uptime: 0
它收到的信息是:
{
"Status": [
{
"uptime": 12345.0
}
]
}
我显然错过了一些东西。如何让Spring将JSON对象转换为Status java对象?此外,该方法的返回意图在哪里进行?
答案 0 :(得分:1)
请求正文JSON与Status对象结构不匹配。你的身体应该是
require
或Status类应为
{uptime: 12345.0}
您可以定义一个新类并拥有此新类的列表
,而不是拥有Map列表class Status {
List<Map<String, Long>> status = new ArrayList<>();
}