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