diff --git a/src/main/java/cn/celess/blog/enmu/UserAccountStatusEnum.java b/src/main/java/cn/celess/blog/enmu/UserAccountStatusEnum.java index c43b098..31973e9 100644 --- a/src/main/java/cn/celess/blog/enmu/UserAccountStatusEnum.java +++ b/src/main/java/cn/celess/blog/enmu/UserAccountStatusEnum.java @@ -1,5 +1,6 @@ package cn.celess.blog.enmu; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import java.util.HashMap; @@ -51,6 +52,16 @@ public enum UserAccountStatusEnum { return null; } + @JsonCreator + public static UserAccountStatusEnum get(Map map) { + for (UserAccountStatusEnum value : UserAccountStatusEnum.values()) { + if (value.code == (int) map.get("code") && value.desc.equals(map.get("desc"))) { + return value; + } + } + return null; + } + @JsonValue public Map toJson() { Map map = new HashMap<>(2); diff --git a/src/test/java/cn/celess/blog/enmu/UserAccountStatusEnumTest.java b/src/test/java/cn/celess/blog/enmu/UserAccountStatusEnumTest.java index 2576f8a..e7d4448 100644 --- a/src/test/java/cn/celess/blog/enmu/UserAccountStatusEnumTest.java +++ b/src/test/java/cn/celess/blog/enmu/UserAccountStatusEnumTest.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; +import java.io.IOException; + import static org.junit.Assert.*; public class UserAccountStatusEnumTest extends BaseTest { @@ -18,7 +20,17 @@ public class UserAccountStatusEnumTest extends BaseTest { @Test public void toJson() throws JsonProcessingException { + // 序列化 ObjectMapper objectMapper = new ObjectMapper(); assertEquals("{\"code\":0,\"desc\":\"正常\"}", objectMapper.writeValueAsString(UserAccountStatusEnum.NORMAL)); } + + @Test + public void testGet() throws IOException { + // 反序列化 + ObjectMapper mapper = new ObjectMapper(); + UserAccountStatusEnum userAccountStatusEnum = mapper.readValue(mapper.writeValueAsString(UserAccountStatusEnum.NORMAL), UserAccountStatusEnum.class); + assertEquals(UserAccountStatusEnum.NORMAL.getCode(), userAccountStatusEnum.getCode()); + assertEquals(UserAccountStatusEnum.NORMAL.getDesc(), userAccountStatusEnum.getDesc()); + } } \ No newline at end of file