- 问题出现
在项目中遇到
CommonResponse commonResponse = JSONObject.parseObject(str,CommonResponse.class);
转换 json 对象的问题,此时可以正确的转换成 CommonResponse 对象。
但是,当遇到泛型 CommonResponse时,如下
CommonResponse<T> commonResponse = JSONObject.parseObject(str,CommonResponse<T>.class);
就不会正确的转换,转换之后的 commonResponse 里面的 T 不是 T 对象,而是一个 JSONObject。
2.问题解决
fastjson 除了上面的方法外,还重载了一个方法
public static <T> T parseObject(String text, TypeReference<T> type, Feature... features){}
就是这个 TypeReference,修改后代码:
CommonResponse<T> commonResponse = JSONObject.parseObject(str,new TypeReference<CommonResponse<T>>(){});
这个时候,这里转换后的 commonResponse 里面的 T 对象就是一个正确的 JavaBean 了,而不是一个 JSONObject 对象。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于