SpringMVC中使用jackson返回json时如何将枚举转为json
在网上搜过,给出的方案是在要转换的枚举的get方法上加上@JsonValue注解,我加上后报了错下面是我错误的示例:StatusEnum:
IndexController:
POM.xml中jackson与Spring的版本号:
报的错:
走同样的路,发现不同的人生
내 접근 방식은 이를 Map으로 변환하는 공용 메소드를 작성하는 것입니다가능한 한 편리하게 구현하면 됩니다. 사실 주석은 열거형 인스턴스의 get 메소드에 배치되어야 한다고 생각합니다
사용해본 적이 없어서 잘 모르겠지만 호기심을 참지 못하고 사용해봤습니다. . . 위의 경우는 불가능합니다. . . 하지만 @JsonValue를 사용하지 마세요
개인 테스트, 성공했습니다
enum기본적으로 jackson은 인덱스 및 열거형 이름으로만 직렬화할 수 있습니다. {} json 객체를 반환해야 하는 경우 SerializerJdk8Module을 직접 구현해야 합니다. StatusEnum 당신 자신.
enum
{}
Serializer
StatusEnum
참고: http://blog.csdn.net/sdyy321/...
다음 사항을 살펴볼 수 있습니다.
SerializationFeature.WRITE_ENUMS_USING_TO_STRING
@JsonSerialize 및 @JsonDeserialize
@JsonSerialize
@JsonDeserialize
@JsonCreator
을 사용하면 간단하고 후자는 유연하게 구현할 수 있습니다. @JsonSerialize직렬화가 필요한 경우에는 과 @JsonDeserialize을 사용하면 됩니다. . 전자는 유연합니다. 후자는 쉽습니다 :)@JsonCreator
내 접근 방식은 이를 Map으로 변환하는 공용 메소드를 작성하는 것입니다
으아악가능한 한 편리하게 구현하면 됩니다. 사실 주석은 열거형 인스턴스의 get 메소드에 배치되어야 한다고 생각합니다
사용해본 적이 없어서 잘 모르겠지만
으아악호기심을 참지 못하고 사용해봤습니다. . . 위의 경우는 불가능합니다. . . 하지만 @JsonValue를 사용하지 마세요
개인 테스트, 성공했습니다
enum
기본적으로 jackson은 인덱스 및 열거형 이름으로만 직렬화할 수 있습니다.{}
json 객체를 반환해야 하는 경우Serializer
Jdk8Module을 직접 구현해야 합니다.
StatusEnum
당신 자신.다음 사항을 살펴볼 수 있습니다.
SerializationFeature.WRITE_ENUMS_USING_TO_STRING
;@JsonSerialize
및@JsonDeserialize
@JsonCreator
을 사용하면 간단하고 후자는 유연하게 구현할 수 있습니다.
@JsonSerialize
직렬화가 필요한 경우에는과
@JsonDeserialize
을 사용하면 됩니다. . 전자는 유연합니다. 후자는 쉽습니다 :)@JsonCreator