利用Jackson封裝常用JsonUtil工具類

2022-01-13 13:41:21 字數 2200 閱讀 1147

在日常的專案開發中,介面與介面之間、前後端之間的資料傳輸一般都是使用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 陣列 ...