當前位置:成語大全網 - 書法字典 - 如何用java把數據封裝成JSON包?

如何用java把數據封裝成JSON包?

數據在java中封裝成JSON包,可以使用java提供的jsonArray進行轉換。代碼如下:

包裹?com.json

進口?Java . io . io exception;

進口?Java . util . ArrayList;

進口?java.util .集合;

進口?Java . util . hashmap;

進口?Java . util . iterator;

進口?Java . util . list;

進口?Java . util . map;

進口?javax . servlet . mons . bean utils . bean utils;

進口?org . Apache . struts 2 . servletactioncontext;

進口?com . open symphony . xwork 2 . action context;

公共?班級?JSONUtils

{

/**

*?

*?@作者?王維?JSON工具類

*?@param?& ltT & gt

*?

*/

/***

*?將列表對象序列化為JSON文本。

*/

公共?靜電?& ltT & gt?字符串?toJSONString(List & lt;T & gt?列表)

{

JSONArray?jsonArray?=?JSON array . from object(list);

回歸?JSON array . tostring();

}

/***

*?將對象序列化為JSON文本

*?@param?目標

*?@返回

*/

公共?靜電?字符串?toJSONString(對象?對象)

{

JSONArray?jsonArray?=?JSON array . from object(object);

回歸?JSON array . tostring();

}

/***

*?將JSON對象的數組序列化為JSON文本。

*?@param?jsonArray

*?@返回

*/

公共?靜電?字符串?toJSONString(JSONArray?jsonArray)

{

回歸?JSON array . tostring();

}

/***

*?將JSON對象序列化為JSON文本。

*?@param?jsonObject

*?@返回

*/

公共?靜電?字符串?toJSONString(JSONObject?jsonObject)

{

回歸?JSON object . tostring();

}?

/***

*?將對象轉換為列表對象。

*?@param?目標

*?@返回

*/

公共?靜電?列表?toArrayList(對象?對象)

{

列表?數組列表?=?新的?ArrayList();

JSONArray?jsonArray?=?JSON array . from object(object);

叠代器?它?=?JSON array . iterator();

什麽時候?(it.hasNext())

{

JSONObject?jsonObject?=?(JSONObject)?it . next();

叠代器?鑰匙?=?JSON object . keys();

什麽時候?(keys.hasNext())

{

對象?鑰匙?=?keys . next();

對象?價值?=?JSON object . get(key);

arrayList.add(值);

}

}

回歸?arrayList

}

/***

*?將對象轉換為集合對象。

*?@param?目標

*?@返回

*/

公共?靜電?收藏?toCollection(對象?對象)

{

JSONArray?jsonArray?=?JSON array . from object(object);

回歸?JSON array . to collection(JSON array);

}

/***

*?將對象轉換為JSON對象的數組。

*?@param?目標

*?@返回

*/

公共?靜電?JSONArray?toJSONArray(對象?對象)

{

回歸?JSON array . from object(object);

}

/***

*?將對象轉換為JSON對象

*?@param?目標

*?@返回

*/

公共?靜電?JSONObject?toJSONObject(對象?對象)

{

回歸?JSONObject.fromObject(對象);

}

/***

*?將對象轉換為哈希表

*?@param?目標

*?@返回

*/

公共?靜電?HashMap?toHashMap(對象?對象)

{

HashMap & lt字符串,?Object & gt?數據?=?新的?HashMap & lt字符串,?Object & gt();

JSONObject?jsonObject?=?JSONUtils.toJSONObject(對象);

叠代器?它?=?JSON object . keys();

什麽時候?(it.hasNext())

{

字符串?鑰匙?=?string . value of(it . next());

對象?價值?=?JSON object . get(key);

data.put(鍵,值);

}

回歸?數據;

}

/***

*?將對象轉換為列表

*?@param?目標

*?@返回

*/

//?返回非實體類型(映射

公共?靜電?列表& lt地圖& lt字符串,?Object & gt& gt?toList(對象?對象)

{

列表& lt地圖& lt弦,?Object & gt& gt?列表?=?新的?ArrayList & lt地圖& lt弦,?Object & gt& gt();

JSONArray?jsonArray?=?JSON array . from object(object);

為了什麽?(對象?obj?:?jsonArray)

{

JSONObject?jsonObject?=?(JSONObject)?obj

地圖& lt弦,?Object & gt?地圖?=?新的?HashMap & lt弦,?Object & gt();

叠代器?它?=?JSON object . keys();

什麽時候?(it.hasNext())

{

字符串?鑰匙?=?(字符串)?it . next();

對象?價值?=?JSON object . get(key);

map.put((字符串)?關鍵,?值);

}

list.add(地圖);

}

回歸?列表;

}

/***

*?將JSON對象的數組轉換為傳入類型的列表。

*?@param?& ltT & gt

*?@param?jsonArray

*?@param?對象類

*?@返回

*/

公共?靜電?& ltT & gt?列表& ltT & gt?toList(JSONArray?jsonArray,?Class & ltT & gt?對象類)

{

回歸?JSONArray.toList(jsonArray,?object class);

}

/***

*?將對象轉換為傳入類型的列表。

*?@param?& ltT & gt

*?@param?jsonArray

*?@param?對象類

*?@返回

*/

公共?靜電?& ltT & gt?列表& ltT & gt?toList(對象?對象,?Class & ltT & gt?對象類)

{

JSONArray?jsonArray?=?JSON array . from object(object);

回歸?JSONArray.toList(jsonArray,?object class);

}

/***

*?將JSON對象轉換為傳入類型的對象。

*?@param?& ltT & gt

*?@param?jsonObject

*?@param?豆類

*?@返回

*/

公共?靜電?& ltT & gt?t?toBean(JSONObject?jsonObject,?Class & ltT & gt?beanClass)

{

回歸?(T)?JSONObject.toBean(jsonObject,?bean class);

}

/***

*?該對象將被轉換為傳入類型的對象。

*?@param?& ltT & gt

*?@param?目標

*?@param?豆類

*?@返回

*/

公共?靜電?& ltT & gt?t?toBean(對象?對象,?Class & ltT & gt?beanClass)

{

JSONObject?jsonObject?=?JSONObject.fromObject(對象);

回歸?(T)?JSONObject.toBean(jsonObject,?bean class);

}

/***

*?將JSON文本反序列化為具有主從關系的實體。

*?@param?& ltT & gt?通用t?表示主要實體類型。

*?@param?& ltD & gt?通用d?表示從屬實體類型。

*?@param?jsonString?JSON文本

*?@param?主類?主要實體類型

*?@param?詳細名稱?主實體類中從屬實體類的屬性名。

*?@param?detailClass?來自實體類型

*?@返回

*/

公共?靜電?& ltt,?D & gt?t?toBean(字符串?jsonString,?Class & ltT & gt?主類,

字符串?detailName,Class & ltD & gt?detailClass)

{

JSONObject?jsonObject?=?JSON object . from object(JSON string);

JSONArray?jsonArray?=?(JSONArray)?JSON object . get(detail name);

t?主實體?=?JSONUtils.toBean(jsonObject,?main class);

列表& ltD & gt?詳細列表?=?JSONUtils.toList(jsonArray,?detail class);

嘗試

{

bean utils . set property(main entity,detailName,detail list);

}

接住?(例外?ex)

{

扔?新的?RuntimeException ("JSON反序列化實體在主從關系中失敗!");

}

回歸?主實體;

}

/***

*?將JSON文本反序列化為具有主從關系的實體。

*?@param?& ltT & gt通用t?表示主要實體類型。

*?@param?& ltd 1 & gt;通用D1?表示從屬實體類型。

*?@param?& ltD2 & gt;通用D2?表示從屬實體類型。

*?@param?jsonString?JSON文本

*?@param?主類?主要實體類型

*?@param?detailName1?主實體類中從屬實體類的屬性

*?@param?detailClass1?來自實體類型

*?@param?detailName2?主實體類中從屬實體類的屬性

*?@param?detailClass2?來自實體類型

*?@返回

*/

公共?靜電?& ltt,?D1,?D2 & gt;?t?toBean(字符串?jsonString,?Class & ltT & gt?主類,

字符串?detailName1,?Class & ltd 1 & gt;?detailClass1,?字符串?詳細名稱2,

Class & ltD2 & gt;?detailClass2)

{

JSONObject?jsonObject?=?JSON object . from object(JSON string);

JSONArray?jsonArray1?=?(JSONArray)?JSON object . get(detail name 1);

JSONArray?jsonArray2?=?(JSONArray)?JSON object . get(detail name 2);

t?主實體?=?JSONUtils.toBean(jsonObject,?main class);

列表& ltd 1 & gt;?detailList1?=?jsonutils . to list(JSON array 1,?detail class 1);

列表& ltD2 & gt;?詳細列表2?=?JSONUtils.toList(jsonArray2,?detail class 2);

嘗試

{

bean utils . set property(main entity,detailName1,?detaillist 1);

bean utils . set property(main entity,detailName2,?詳細列表2);

}

接住?(例外?ex)

{

扔?新的?RuntimeException ("JSON反序列化實體在主從關系中失敗!");

}

回歸?主實體;

}

/***

*?將JSON文本反序列化為具有主從關系的實體。

*?@param?& ltT & gt通用t?表示主要實體類型。

*?@param?& ltd 1 & gt;通用D1?表示從屬實體類型。

*?@param?& ltD2 & gt;通用D2?表示從屬實體類型。

*?@param?jsonString?JSON文本

*?@param?主類?主要實體類型

*?@param?detailName1?主實體類中從屬實體類的屬性

*?@param?detailClass1?來自實體類型

*?@param?detailName2?主實體類中從屬實體類的屬性

*?@param?detailClass2?來自實體類型

*?@param?detailName3?主實體類中從屬實體類的屬性

*?@param?detailClass3?來自實體類型

*?@返回

*/

公共?靜電?& ltt,?D1,?D2?D3 & gt?t?toBean(字符串?jsonString,

Class & ltT & gt?主類,?字符串?detailName1,?Class & ltd 1 & gt;?detailClass1,

字符串?detailName2,?Class & ltD2 & gt;?detailClass2,?字符串?詳細名稱3,

Class & ltD3 & gt?詳細信息類別3)

{

JSONObject?jsonObject?=?JSON object . from object(JSON string);

JSONArray?jsonArray1?=?(JSONArray)?JSON object . get(detail name 1);

JSONArray?jsonArray2?=?(JSONArray)?JSON object . get(detail name 2);

JSONArray?jsonArray3?=?(JSONArray)?JSON object . get(detail name 3);

t?主實體?=?JSONUtils.toBean(jsonObject,?main class);

列表& ltd 1 & gt;?detailList1?=?jsonutils . to list(JSON array 1,?detail class 1);

列表& ltD2 & gt;?詳細列表2?=?JSONUtils.toList(jsonArray2,?detail class 2);

列表& ltD3 & gt?詳細列表3?=?JSONUtils.toList(jsonArray3,?detail class 3);

嘗試

{

bean utils . set property(main entity,detailName1,?detaillist 1);

bean utils . set property(main entity,detailName2,?詳細列表2);

bean utils . set property(main entity,detailName3,?詳細列表3);

}

接住?(例外?ex)

{

扔?新的?RuntimeException ("JSON反序列化實體在主從關系中失敗!");

}

回歸?主實體;

}

/***

*?將JSON文本反序列化為具有主從關系的實體。

*?@param?& ltT & gt?主要實體類型

*?@param?jsonString?JSON文本

*?@param?主類?主要實體類型

*?@param?detailClass?在主實體中存儲多個從實體屬性名稱和類型。

*?@返回

*/

公共?靜電?& ltT & gt?t?toBean(字符串?jsonString,?Class & ltT & gt?主類,

HashMap & lt弦,?Class & gt?detailClass)

{

JSONObject?jsonObject?=?JSON object . from object(JSON string);

t?主實體?=?JSONUtils.toBean(jsonObject,?main class);

為了什麽?(對象?鑰匙?:?detailClass.keySet())

{

嘗試

{

班級?價值?=?(類)?detail class . get(key);

bean utils . set property(main entity,key.toString(),?值);

}

接住?(例外?ex)

{

扔?新的?RuntimeException ("JSON反序列化實體在主從關系中失敗!");

}

}

回歸?主實體;

}

/**

*?封裝的json數據從後臺傳輸。

*?@param?目標文件

*/

公共?靜電?作廢?outPutJson(對象?obj){

ActionContext?語境?=?action context . get context();

HttpServletResponse?回應?=?(HttpServletResponse)?context . get(ServletActionContext。HTTP _ RESPONSE);

試試?{

response.getWriter()。print(obj);

}?接住?(IOException?e)?{

e . printstacktrace();

}

}

}

//測試類

字符串?s1?=?"[{id:1,?pId:0,?名稱:\"test1\ "?,?open:true }]";?

字符串?s2?=?“{id:2,?pId:1,?名稱:\"test211\ "?,?open:true }”;?

字符串?s3?=?“{id:3,?pId:2,?名稱:\"test311\ "?,?open:true }”;?

字符串?s4?=?“{id:4,?pId:1,?名稱:\"test411\ "?,?open:true }”;

列表& lt字符串& gt?listZtree?=?新的?ArrayList & lt字符串& gt();

listztree . add(s 1);

listztree . add(S2);

listztree . add(S3);

listztree . add(S4);

system . out . println(jsonutils . tojsonstring(listZtree));

}