通常會使用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方法即可進行轉換。