We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
与相似问题有一样的前提条件,定义了一个接口给枚举使用
fastJSON版本: 2.0.37
public interface MapEnum { @JSONField String getCode(); String getDesc(); }
如果添加了@JSONField,可以将code里的写入JSON中,但是如果我想要特别定制,将MapEnum做为一个对象写入,我定义了一个ObjectWriter, 并注册
@JSONField
JSON.register(MapEnum.class, new ObjectWriter<MapEnum>() { @Override public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) { Map<String, Object> map = new HashMap<>(); map.put("code", ((MapEnum) object).getCode()); map.put("desc", ((MapEnum) object).getDesc()); jsonWriter.write(map); } });
如果这样注册,当类中的字段为MapEnum的实现的时候,序列化无效,当我使用比如:
testCls.setMapEnum(new MapEnum() { @Override public String getCode() { return "hahaha"; } @Override public String getDesc() { return "This is what"; } });
刻意将字段设置成接口,则有效,请问这个情况,是我的调用问题,还是一个Bug?
The text was updated successfully, but these errors were encountered:
enum support interface annotation config, for issue #1699
c0517c5
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.38-SNAPSHOT/ 请用2.0.38-SNAPSHOT版本帮忙做如下验证:
@Test public void test() { assertEquals("{\"code\":\"Big\",\"desc\":\"大\"}", JSON.toJSONString(MyEnum.Big)); } @JSONType(writeEnumAsJavaBean = true) public interface MapEnum { String getCode(); String getDesc(); } public enum MyEnum implements MapEnum { Big("Big", "大"), Small("Small", "小"); MyEnum(String code, String desc) { this.code = code; this.desc = desc; } final String code; final String desc; @Override public String getCode() { return code; } @Override public String getDesc() { return desc; } }
Sorry, something went wrong.
@wenshao 你好,验证可以通过,版本:2.0.38-SNAPSHOT
https://github.com/alibaba/fastjson2/releases/tag/2.0.39 请用新版本
No branches or pull requests
使用ObjectWriter自定义处理的时候,使用接口类型的情况下无法被调用
与相似问题有一样的前提条件,定义了一个接口给枚举使用
fastJSON版本:
2.0.37
如果添加了
@JSONField
,可以将code里的写入JSON中,但是如果我想要特别定制,将MapEnum做为一个对象写入,我定义了一个ObjectWriter, 并注册如果这样注册,当类中的字段为MapEnum的实现的时候,序列化无效,当我使用比如:
刻意将字段设置成接口,则有效,请问这个情况,是我的调用问题,还是一个Bug?
The text was updated successfully, but these errors were encountered: