Rumah > Soal Jawab > teks badan
SpringMVC中使用jackson返回json时如何将枚举转为json
在网上搜过,给出的方案是在要转换的枚举的get方法上加上@JsonValue注解,我加上后报了错
下面是我错误的示例:
StatusEnum:
IndexController:
POM.xml中jackson与Spring的版本号:
报的错:
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
PHP中文网2017-04-18 10:03:21
enum
Secara 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.
PHPz2017-04-18 10:03:21
Rujukan: http://blog.csdn.net/sdyy321/...
Anda boleh lihat perkara berikut:
SerializationFeature.WRITE_ENUMS_USING_TO_STRING
;
@JsonSerialize
dan @JsonDeserialize
;
@JsonCreator
Jika anda memerlukan penyahsiran, anda boleh menggunakan @JsonSerialize
dan
. . Yang pertama adalah fleksibel :)@JsonDeserialize