gpt4 book ai didi

java - 使用 Spring 将入站 JSON 消息转换为 Java 对象

转载 作者:行者123 更新时间:2023-12-01 09:32:23 25 4
gpt4 key购买 nike

我正在尝试通过在 Spring Boot 中反序列化 JSON 消息来创建 Java 对象。我有一个这样的类(class):

public class Status implements Serializable {
private int uptime;
}

然后我有一个这样的休息 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;

}

}

我绝对不明白我在这里所做的事情。我希望 Controller 在收到消息时创建一个 Status 对象并将其存储在数据库中。

这段代码的输出是:

Uptime: 0

它收到的消息是:

{
"Status": [
{
"uptime": 12345.0
}
]
}

我显然错过了一些东西。如何让 Spring 将 JSON 对象转换为 Status java 对象?另外,该方法的返回值在哪里?

最佳答案

请求正文 JSON 与状态对象结构不匹配。要么你的 body 应该是

{uptime: 12345.0}

或者 Status 类应该是

class Status {
List<Map<String, Long>> status = new ArrayList<>();
}

您可以定义一个新类并拥有该新类的列表,而不是拥有 map 列表

class StatusInfo{
long uptime;
}

class Status {
List<StatusInfo> status = new ArrayList<>();
}

关于java - 使用 Spring 将入站 JSON 消息转换为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com