通常会使用fastjson将json字符串转换,可参考文章。而对于事先不确定的类型,则需要使用泛型方式进行对象的转换。
使用泛型定义json字符串转对象的方法:
public static <T> T jsonParse(Object obj, Class<T> clazz) { if (null != obj) { //使用泛型方式转换对象 return JSON.parseObject(JSON.toJSONString(obj), new TypeReference<T>() { }); } return null; }
在进行转换时使用了TypeReference
对象来声明泛型。
进行调用:
jsonParse(userObj,User.class);
那么在进行对象转换时,指定值及类型即可,可减少重复转换的代码。
当然也可以转换集合,方式如下:
public static <T> List<T> jsonParseList(Object obj, Class<T> clazz) { if (null != obj) { //使用泛型方式转换集合 List<T> list = JSON.parseArray(JSON.toJSONString(obj), clazz); return list; } return null; }
使用parseArray方法即可进行转换。