cari

Rumah  >  Soal Jawab  >  teks badan

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

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

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

IndexController:

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

报的错:

怪我咯怪我咯2803 hari yang lalu850

membalas semua(3)saya akan balas

  • PHPz

    PHPz2017-04-18 10:03:21

    Pendekatan saya ialah menulis kaedah awam untuk menukarnya kepada Map
    Hanya laksanakannya semudah mungkin, saya rasa anotasi harus diletakkan pada kaedah get bagi contoh penghitungan

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

    Saya tidak pernah menggunakan ini sebelum ini, jadi saya tidak tahu banyak tentangnya, tetapi anda boleh mencubanya
    Saya tidak dapat menahan rasa ingin tahu saya dan mencubanya. . . Yang di atas tidak boleh dilaksanakan. . . Tetapi jangan gunakan @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
        ...
    }

    Ujian peribadi, ia berfungsi

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:03:21

    enumSecara lalai jackson hanya boleh disirikan ke dalam nama indeks dan penghitungan Jika anda perlu mengembalikan objek json {}, anda perlu melaksanakan sendiri Serializer
    Modul Jdk8 StatusEnum diri sendiri.

    balas
    0
  • PHPz

    PHPz2017-04-18 10:03:21

    Rujukan: http://blog.csdn.net/sdyy321/...

    Anda boleh lihat perkara berikut:

    1. SerializationFeature.WRITE_ENUMS_USING_TO_STRING;

    2. @JsonSerialize dan @JsonDeserialize;

    3. @JsonCreator

    4. Jika anda hanya memerlukan pensirilan, anda boleh menggunakan 1 dan
    untuk melaksanakannya dengan mudah dan yang kedua adalah fleksibel

    Jika anda memerlukan penyahsiran, anda boleh menggunakan @JsonSerialize dan
    . . Yang pertama adalah fleksibel :)@JsonDeserialize

    balas
    0
  • Batalbalas