繁体   English   中英

将枚举多个值转换为 Java SpringBoot 中的 Json

[英]Convert enum multiple values to Json in Java SpringBoot

这里我有一个 Rest Controller

 @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 Class

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;
    }
}

当我从 controller 收到回复时,我得到的是

"LOGIN_SUCCESS"

我需要的是

{
    "id": "0",
    "message": "success"   
}

如何将其反序列化为 Json 并发送响应,是否有任何注释。 请帮忙,谢谢。

您必须使用 JsonFormat 注释

@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum ResponseBack {
...

所以你说这个枚举的 Json 表示将是整个 object。 如果您希望返回特定字段(例如消息字段),您可以使用 JsonValue 批注对该方法进行批注

@JsonValue
public String getMessage() {
    return message;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM