java - 在Java SpringBoot中将枚举多个值转换为Json
问题描述
在这里我有一个休息控制器
@RequestMapping(value = "/mobileNumber", method = RequestMethod.POST, produces = {
MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<ResponseBack> sentResponse() {
return new ResponseEntity<ResponseBack>(ResponseBack.LOGIN_SUCCESS, HttpStatus.ACCEPTED);
}
我的Enum
班级
public enum ResponseBack {
LOGIN_SUCCESS(0, " success"), LOGIN_FAILURE(1, " failure");
private long id;
private final String message;
// Enum constructor
ResponseBack(long id, String message) {
this.id = id;
this.message = message;
}
public long getId() {
return id;
}
public String getMessage() {
return message;
}
}
当我从控制器得到响应时,我得到它
"LOGIN_SUCCESS"
我需要的是
{
"id": "0",
"message": "success"
}
如何将其反序列化为 Json 并发送响应,是否有任何注释。请帮忙,谢谢。
解决方案
您必须使用 JsonFormat 注释
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum ResponseBack {
...
所以你告诉这个枚举的 Json 表示将是整个对象。如果您希望返回特定字段(例如消息字段),您可以使用 JsonValue 批注对该方法进行批注
@JsonValue
public String getMessage() {
return message;
}
推荐阅读
- c# - 如何验证从 iOS 应用内购买收到的付款(21002 响应问题)
- amazon-web-services - 将 ghost-cli 安装到 ubuntu 时出现问题
- wordpress - Azure Bitnami WordPress:无法让服务器获取第三方 SSL 证书
- c# - 动态检查 IList
- spring-cloud-dataflow - 我们可以通过spring cloud数据流将文件从SFTP传输到服务器吗?
- algorithm - 回溯中是否有 do -> recurse -> undo 模式的名称?
- c# - 如何验证 c# 控制台应用程序中的 3 个不同的字符串列表是否具有完全相同大小的条目
- pytorch - 了解 pytorch 图生成
- python - 在胶水作业中将 PySpark 数据帧转换为 pandas 数据帧
- javascript - 反应:错误:渲染的钩子比预期的要少。这可能是由一个