在日常的專案開發中,介面與介面之間、前後端之間的資料傳輸一般都是使用json格式,那必然會封裝一些常用的json資料轉化的工具類,本文講解下如何利用jackson封裝高復用性的json轉換工具類。首先,我們需要對json物件轉換自定義些常用配置屬性,封裝成適合專案介面規則的工具類。**如下:
@slf4j
public class jsonutil
}
一般物件與字串之間的轉換最為常用,**實現如下:
/**
* 物件轉json格式字串
* @param obj 物件
* @return json格式字串
*/public static string obj2string(t obj)
try catch (jsonprocessingexception e) ", e.getmessage());
return null;}}
/*** 物件轉json格式字串(格式化的json字串)
* @param obj 物件
* @return 美化的json格式字串
*/public static string obj2stringpretty(t obj)
try catch (jsonprocessingexception e) ", e.getmessage());
return null;}}
/*** 字串轉換為自定義物件
* @param str 要轉換的字串
* @param clazz 自定義物件的class物件
* @return 自定義物件
*/public static t string2obj(string str, classclazz)
try catch (exception e) ", e.getmessage());
return null;}}
上述三個方法實現起來也比較簡單,滿足了絕大多數業務介面開發,不過聰明的你們也想到了,在字串轉換物件的時候會存在乙個坑,不用我說,你們也知道,就是在字串與集合物件轉換時會存在問題,那應該如何解決呢?
public static t string2obj(string str, typereferencetypereference)
try catch (ioexception e)
}public static t string2obj(string str, class> collectionclazz, class>... elementclazzes) catch (ioexception e) " + e.getmessage());
return null;}}
實體類public class user
測試**@slf4j
public class jsonutiltest ", userjsonpretty);
user user2 = jsonutil.string2obj(userjsonstr, user.class);
user2.setid(2);
user2.setemail("[email protected]");
listuserlist = new arraylist<>();
userlist.add(user1);
userlist.add(user2);
string userlistjson = jsonutil.obj2string(userlist);
listuserlistbean = jsonutil.string2obj(userlistjson, new typereference>() {});
if (userlistbean != null) );
}listuserlistbean2 = jsonutil.string2obj(userlistjson, list.class, user.class);
if (userlistbean2 != null) );}}
}
測試用例結果:
jackson 常用配置
jackson 實體轉json屬性為null或者為空不參加序列化 1.實體上 jsoninclude include.non null 將該標記放在屬性上,如果該屬性為null則不參與序列化 如果放在類上邊,那對這個類的全部屬性起作用 值參考 include.include.always 預設 in...
js常用函式封裝
轉成兩位數 function totwo n 引數說明 str表示原字串變數,表示要插入的字串,sn表示要插入的位置 function insert str,sn 參考 去除空格 type 1 所有空格 2 前後空格 3 前空格 4 後空格 function trim str type 字母大小寫切...
js封裝常用方法
1 陣列按createtime排序 function sortbycreatetime list any 2 陣列去重 es5function uniq arr es6function uniq arr 3 物件陣列取交集 取物件陣列交集 param list1 陣列 param list2 陣列 ...