diff --git a/src/main/java/com/alibaba/fastjson/serializer/EnumSerializer.java b/src/main/java/com/alibaba/fastjson/serializer/EnumSerializer.java index a9e6f82a2..88978cf21 100755 --- a/src/main/java/com/alibaba/fastjson/serializer/EnumSerializer.java +++ b/src/main/java/com/alibaba/fastjson/serializer/EnumSerializer.java @@ -34,7 +34,7 @@ public class EnumSerializer implements ObjectSerializer { if (serializer.isEnabled(SerializerFeature.WriteEnumUsingToString)) { Enum e = (Enum) object; - serializer.write(e.name()); + serializer.write(e.toString()); } else { Enum e = (Enum) object; out.writeInt(e.ordinal()); diff --git a/src/test/java/com/alibaba/json/bvt/bug/Bug_for_ruiqi.java b/src/test/java/com/alibaba/json/bvt/bug/Bug_for_ruiqi.java new file mode 100644 index 000000000..0b2ee2f20 --- /dev/null +++ b/src/test/java/com/alibaba/json/bvt/bug/Bug_for_ruiqi.java @@ -0,0 +1,44 @@ +package com.alibaba.json.bvt.bug; + +import java.util.HashMap; +import java.util.Map; + +import junit.framework.TestCase; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; + +public class Bug_for_ruiqi extends TestCase { + + public void test_0() throws Exception { + Map map = new HashMap(); + map.put("a", Enum.ENUM1); + map.put("b", Enum.ENUM1); + + System.out.println(JSON.toJSONString(map, SerializerFeature.WriteEnumUsingToString)); + + System.out.println(JSON.toJSONString(map)); + + } + + public static enum Enum { + + ENUM1("name1"), ENUM2("name2"); + + private String name; + + Enum(String name){ + this.name = name; + } + + public String getName() { + return name; + } + + @Override + public String toString() { + return "name: " + name; + } + } + +}