@wenshao 感谢您的回复,之前描述不太清楚。
直接使用JSONObject.parseObject(String text, Class clazz)方法直接反序列化的确能满足要求
ColorContainer colorContainer1 = JSONObject.parseObject("{\"color\":\"error\"}", ColorContainer.class);
但如果先用JSONObject.parseObject(String text)先获取一个JSONObject,再使用其toJavaObject获取一个java对象则会报错。
JSONObject jsonObject = JSONObject.parseObject("{\"color\":\"error\"}");
ColorContainer colorContainer = jsonObject.toJavaObject(ColorContainer.class);
exception stack trace如下:
com.alibaba.fastjson.JSONException: can not cast to : enumjson.Color
at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1002)
at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:652)
at com.alibaba.fastjson.JSON.toJavaObject(JSON.java:935)
at enumjson.FastJson.test(FastJson.java:15)