java - SpringMVC中使用jackson返回json时如何将枚举转为json
怪我咯
怪我咯 2017-04-18 10:01:21
0
3
852

SpringMVC中使用jackson返回json时如何将枚举转为json

在网上搜过,给出的方案是在要转换的枚举的get方法上加上@JsonValue注解,我加上后报了错
下面是我错误的示例:
StatusEnum:

IndexController:

POM.xml中jackson与Spring的版本号:

报的错:

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(3)
PHPzhong

Mon approche consiste à écrire une méthode publique pour la convertir en Map
Implémentez-la simplement aussi facilement que possible. En fait, je pense que l'annotation devrait être placée sur la méthode get de l'instance d'énumération

.
public class Result {
    private StatusEnum status;
    ...
    
    @JsonValue
    public StatusEnum getStatus() {
        return status;
    }
    
    public void setStatus(status) {
        this.status = status;
    }
}

Je ne l'ai jamais utilisé auparavant, donc je n'y connais pas grand-chose, mais vous pouvez l'essayer
Je n'ai pas pu résister à ma curiosité et je l'ai essayé. . . Celui ci-dessus n’est pas réalisable. . . Mais n'utilisez pas @JsonValue

@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum StatusEnum {
    STATUS_ERROR("200", "OK"),
    STATUS_SUCCESS(404, "Not Found");
    
    private Stringcode;
    private String msg;
    
    private Status(String code, String msg) {...}

    //getter & setter
    ...
}

Test perso, ça marche

Ty80

enumPar défaut, Jackson ne peut être sérialisé qu'en index et en noms d'énumération. Si vous devez renvoyer un objet {} json, vous devez implémenter Serializer
Jdk8Module vous-même. StatusEnum vous-même.

PHPzhong

Référence : http://blog.csdn.net/sdyy321/...

Vous pouvez jeter un œil aux points suivants :

  1. SerializationFeature.WRITE_ENUMS_USING_TO_STRING

  2. @JsonSerialize et @JsonDeserialize;

  3. @JsonCreator

  4. Si vous avez juste besoin de sérialisation, vous pouvez utiliser 1 et
pour l'implémenter simplement. Le premier est simple et le second est flexible

Si vous avez besoin de désérialisation, vous pouvez utiliser @JsonSerialize et
. . Le premier est flexible. Le second est facile :)@JsonDeserialize.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal