[alibaba/fastjson]JSON.toJavaObject没有考虑@JSONField里的deserializeUsing的class

2024-05-23 727 views
7

JSON.toJavaObject对于enum的field进行反序列化时,如果是int值,则不会考虑@JSONField里的信息,直接使用ordinal的值来反序列化了。

回答

8

代码位置:TypeUtils里的1232~1238行:

if(obj instanceof Number){
                int ordinal = ((Number) obj).intValue();
                Object[] values = clazz.getEnumConstants();
                if(ordinal < values.length){
                    return (T) values[ordinal];
                }
}
0

可以提供个简单的复现用例吗 :)