Json字符串转对象和转List集合操作(alibabab版本)

以下为 alibabab 包各种 JSON 转换的方法总结:

1. 所需引入的第三方包:

 
  1. <dependency>

  2. <groupId>commons-beanutils</groupId>

  3. <artifactId>commons-beanutils</artifactId>

  4. <version>1.9.3</version>

  5. </dependency>

  6.  
  7. <dependency>

  8. <groupId>commons-collections</groupId>

  9. <artifactId>commons-collections</artifactId>

  10. <version>3.2.1</version>

  11. </dependency>

  12.  
  13. <dependency>

  14. <groupId>commons-lang</groupId>

  15. <artifactId>commons-lang</artifactId>

  16. <version>2.6</version>

  17. </dependency>

  18.  
  19. <dependency>

  20. <groupId>commons-logging</groupId>

  21. <artifactId>commons-logging</artifactId>

  22. <version>1.2</version>

  23. </dependency>

  24.  
  25. <dependency>

  26. <groupId>net.sf.ezmorph</groupId>

  27. <artifactId>ezmorph</artifactId>

  28. <version>1.0.4</version>

  29. </dependency>

  30.  
  31. <dependency>

  32. <groupId>net.sf.json-lib</groupId>

  33. <artifactId>json-lib</artifactId>

  34. <version>2.4</version>

  35. <classifier>jdk13</classifier>

  36. </dependency>

  37.  
  38. <dependency>

  39. <groupId>com.alibaba</groupId>

  40. <artifactId>fastjson</artifactId>

  41. <version>1.2.28</version>

  42. </dependency>

2. 对象User类

 
  1. package com.lmx.demo;

  2.  
  3. public class User

  4. {

  5.  
  6. private String cId;

  7.  
  8. private String uName;

  9.  
  10. private String pwd;

  11.  
  12. public User(){

  13.  
  14. }

  15. public User(String cId, String uName, String pwd){

  16.  
  17. this.cId = cId;

  18. this.uName = uName;

  19. this.pwd = pwd;

  20.  
  21. }

  22.  
  23. public String getcId()

  24. {

  25. return cId;

  26. }

  27.  
  28. public void setcId(String cId)

  29. {

  30. this.cId = cId;

  31. }

  32.  
  33. public String getuName()

  34. {

  35. return uName;

  36. }

  37.  
  38. public void setuName(String uName)

  39. {

  40. this.uName = uName;

  41. }

  42.  
  43. public String getPwd()

  44. {

  45. return pwd;

  46. }

  47.  
  48. public void setPwd(String pwd)

  49. {

  50. this.pwd = pwd;

  51. }

  52.  
  53. }


 

3. Json各类转换

 
  1. package com.lmx.demo;

  2.  
  3.  
  4. import java.util.ArrayList;

  5. import java.util.HashMap;

  6. import java.util.List;

  7. import java.util.Map;

  8.  
  9. import com.alibaba.fastjson.JSON;

  10. import com.alibaba.fastjson.JSONArray;

  11. import com.alibaba.fastjson.JSONObject;

  12.  
  13. /**

  14. * alibaba 第三方包 Json 转换用法

  15. * @author LMX

  16. *

  17. */

  18. public class Main

  19. {

  20.  
  21. /**

  22. * 1.通过JSON.parse把json转换为Map

  23. *

  24. * @param jsonStr

  25. */

  26. public void getJsonToMap()

  27. {

  28. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  29. Map maps = (Map)JSON.parse(jsonStr);

  30. for (Object map : maps.entrySet())

  31. {

  32. System.out.println(

  33. "key为:" + ((Map.Entry)map).getKey() + ", 值为:" + ((Map.Entry)map).getValue());

  34. }

  35.  
  36. /*

  37. 输出: key为:address, 值为:sz

  38. key为:Id, 值为:1

  39. key为:userName, 值为:lmx

  40. key为:pwd, 值为:123456

  41. */

  42.  
  43. }

  44.  
  45. /**

  46. * 2.通过JSON.parseObject把json转换为Map

  47. *

  48. * @param jsonStr

  49. * @return

  50. */

  51. public void getJsonToMapByClass()

  52. {

  53. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  54. Map mapTypes = JSON.parseObject(jsonStr, Map.class);

  55. for (Object obj : mapTypes.keySet())

  56. {

  57. System.out.println("key为:" + obj + ", 值为:" + mapTypes.get(obj));

  58. }

  59. /* 输出: key为:address, 值为:sz

  60. key为:Id, 值为:1

  61. key为:userName, 值为:lmx

  62. key为:pwd, 值为:123456

  63. */

  64. }

  65.  
  66. /**

  67. * 3.通过JSON.parseObject把json转换为Object

  68. *

  69. * @param jsonStr

  70. * @return

  71. */

  72. public void getJsonToObject()

  73. {

  74. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  75. Map mapTypes = JSON.parseObject(jsonStr);

  76. for (Object obj : mapTypes.keySet())

  77. {

  78. System.out.println("key为:" + obj + ", 值为:" + mapTypes.get(obj));

  79. }

  80.  
  81. /* 输出: key为:address, 值为:sz

  82. key为:Id, 值为:1

  83. key为:userName, 值为:lmx

  84. key为:pwd, 值为:123456

  85. */

  86. }

  87.  
  88. /**

  89. * 4.通过JSONObject.parse把json转换为Map

  90. *

  91. * @param jsonStr

  92. */

  93. public void getJSONObjectToMap()

  94. {

  95. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  96. Map json = (Map)JSONObject.parse(jsonStr);

  97. for (Object map : json.entrySet())

  98. {

  99. System.out.println(

  100. "key为:" + ((Map.Entry)map).getKey() + ", 值为:" + ((Map.Entry)map).getValue());

  101. }

  102. /* 输出: key为:address, 值为:sz

  103. key为:Id, 值为:1

  104. key为:userName, 值为:lmx

  105. key为:pwd, 值为:123456

  106. */

  107. }

  108.  
  109. /**

  110. * 5.通过JSONObject.parseObject把json转换为JSONObject,并遍历单Object输出

  111. *

  112. * @param jsonStr

  113. */

  114. public void getJSONObjectToObject()

  115. {

  116. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  117. JSONObject jsonObject = JSONObject.parseObject(jsonStr);

  118. for (Object map : jsonObject.entrySet())

  119. {

  120. System.out.println(

  121. "key为:" + ((Map.Entry)map).getKey() + ", 值为:" + ((Map.Entry)map).getValue());

  122. }

  123.  
  124. /* 输出: key为:address, 值为:sz

  125. key为:Id, 值为:1

  126. key为:userName, 值为:lmx

  127. key为:pwd, 值为:123456

  128. */

  129. }

  130.  
  131. /**

  132. * 6.通过JSONObject.parseObject把json转换为Map

  133. *

  134. * @param jsonStr

  135. */

  136. public void getJSONObjectToMapClass()

  137. {

  138. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  139. Map mapObj = JSONObject.parseObject(jsonStr, Map.class);

  140.  
  141. for (Object map : mapObj.entrySet())

  142. {

  143. System.out.println(

  144. "key为:" + ((Map.Entry)map).getKey() + ", 值为:" + ((Map.Entry)map).getValue());

  145. }

  146.  
  147. /* 输出: key为:address, 值为:sz

  148. key为:Id, 值为:1

  149. key为:userName, 值为:lmx

  150. key为:pwd, 值为:123456

  151. */

  152. }

  153.  
  154. ////////////// List集合和JSON相互转换工具类//////////////////////////

  155. /**

  156. * 7.通过JSON.toJSONString把List<T>转换为json

  157. *

  158. * @param obj

  159. * @return

  160. */

  161. public static <T> String getListToJson(List<T> obj)

  162. {

  163. String jsonStr = JSON.toJSONString(obj);

  164. return jsonStr;

  165. // String输出: ["aa","bb","cc"]

  166. // userModel输出: [{"cId":"100","pwd":"123456","uName":"lmx"},{"cId":"200","pwd":"123456","uName":"jqy"}]

  167. }

  168.  
  169. /**

  170. * 8.通过JSONArray.parseArray把json转换为List<T>

  171. *

  172. * @param jsonStr

  173. * @param model

  174. * @return

  175. */

  176. public static <T> List<T> getStringToList(String jsonStr, Class<T> model)

  177. {

  178. List<T> object = (List<T>)JSONArray.parseArray(jsonStr, model);

  179. return object;

  180. // String输出: "aa","bb","cc"

  181. // userModel输出: lmx,jqy

  182. }

  183.  
  184. ////////////// 对象和JSON相互转换工具类/////////////////////////

  185.  
  186. /**

  187. * 9.通过JSONObject.toJSONString把对象转换为String

  188. * @param model

  189. * @return

  190. */

  191. public static <T> String getObjectToJson(T model)

  192. {

  193. String StrObject = JSONObject.toJSONString(model);

  194. return StrObject;

  195.  
  196. // User输出: {"cId":"100","pwd":"123456","uName":"lmx"}

  197. // Map输出: {"uName":"llmmxx","pwd":"123","cId":"300"}

  198. }

  199.  
  200.  
  201. /**

  202. * 10.通过JSONObject.parseObject把String转换为对象

  203. * @param jsonStr

  204. * @param model

  205. * @return

  206. */

  207. public static <T> T getStringToObject(String jsonStr, Class<T> model)

  208. {

  209. return JSONObject.parseObject(jsonStr, model);

  210.  
  211. // User输出: {"cId":"100","pwd":"123456","uName":"lmx"}

  212. // Map输出: {"uName":"llmmxx","pwd":"123","cId":"300"}

  213.  
  214. }

  215.  
  216. /**

  217. * 11 .通过fluentPut添加一个值

  218. * fluentPutAll fluentPut

  219. * @param jsonStr

  220. * @return

  221. */

  222. public void setAddJSONObject()

  223. {

  224. String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";

  225. JSONObject jsonObject = JSONObject.parseObject(jsonStr);

  226. jsonObject.fluentPut("lll", "111");

  227.  
  228. Map<String, String> der = new HashMap<String, String>();

  229. der.put("der1", "der1");

  230. der.put("der2", "der2");

  231. der.put("der3", "der3");

  232. jsonObject.fluentPutAll(der);

  233. //jsonObject.fluentClear();清除

  234. for (Object map : jsonObject.entrySet())

  235. {

  236. System.out.println(

  237. "key为:" + ((Map.Entry)map).getKey() + ", 值为:" + ((Map.Entry)map).getValue());

  238. }

  239.  
  240. /* 输出: key为:uName, 值为:lmx

  241. key为:pwd, 值为:123456

  242. key为:der3, 值为:der3

  243. key为:lll, 值为:111

  244. key为:der1, 值为:der1

  245. key为:cId, 值为:100

  246. key为:der2, 值为:der2

  247. */

  248.  
  249. }

  250.  
  251. @SuppressWarnings("static-access")

  252. public static void main(String[] args)

  253. {

  254. // TODO Auto-generated method stub

  255.  
  256.  
  257.  
  258. Main m = new Main();

  259.  
  260. // 1

  261. System.out.println("getJsonToMap:");

  262. m.getJsonToMap();

  263. // 2

  264. System.out.println("getJsonToMapByClass:");

  265. m.getJsonToMapByClass();

  266. // 3

  267. System.out.println("getJsonToObject:");

  268. m.getJsonToObject();

  269. // 4

  270. System.out.println("getJSONObjectToMap:");

  271. m.getJSONObjectToMap();

  272. // 5

  273. System.out.println("getJSONObjectToObject:");

  274. m.getJSONObjectToObject();

  275. // 6

  276. System.out.println("getJSONObjectToMapClass:");

  277. m.getJSONObjectToMapClass();

  278.  
  279. // 7.1 String

  280. System.out.println("getListToJson by String:");

  281. List<String> StrModel = new ArrayList<String>();

  282. StrModel.add("aa");

  283. StrModel.add("bb");

  284. StrModel.add("cc");

  285. String strString = m.getListToJson(StrModel);

  286. System.out.println(strString);

  287.  
  288. // 7.2 User

  289. System.out.println("getListToJson by userModel:");

  290. List<User> userModel = new ArrayList<User>();

  291. User u = new User();

  292. u.setcId("100");

  293. u.setuName("lmx");

  294. u.setPwd("123456");

  295.  
  296. User u1 = new User();

  297. u1.setcId("200");

  298. u1.setuName("jqy");

  299. u1.setPwd("123456");

  300.  
  301. userModel.add(u);

  302. userModel.add(u1);

  303.  
  304. String strUser = m.getListToJson(userModel);

  305. System.out.println(strUser);

  306.  
  307. // 8.1 String

  308. System.out.println("getJsonToList by String:");

  309. List<String> strLists = m.getStringToList(strString, String.class);

  310. for (String strList : strLists)

  311. {

  312. System.out.println(strList);

  313. }

  314.  
  315. //8.2 User对象

  316. System.out.println("getJsonToList by User:");

  317. List<User> userLists = m.getStringToList(strUser,User.class);

  318. for (User userList : userLists)

  319. {

  320. System.out.println(userList.getuName());

  321. }

  322.  
  323. //9.1 User对象

  324. System.out.println("getObjectToJson by User:");

  325. String strUsers = m.getObjectToJson(u);

  326. System.out.println(strUsers);

  327.  
  328. //9.2 Map

  329. System.out.println("getObjectToJson by Map:");

  330. Map<String , String> userMap = new HashMap<String, String>();

  331. userMap.put("cId", "300");

  332. userMap.put("uName", "llmmxx");

  333. userMap.put("pwd", "123");

  334. String strUsersMap = m.getObjectToJson(userMap);

  335. System.out.println(strUsersMap);

  336.  
  337.  
  338. /* //9.3 User对象

  339. System.out.println("getObjectToJson by User:");

  340. String strObjectUser = m.getObjectToJson(strUsers);

  341. System.out.println(strObjectUser);

  342.  
  343. //9.4 Map对象

  344. System.out.println("getObjectToJson by Map:");

  345. String strObjectMap = m.getObjectToJson(strUsersMap);

  346. System.out.println(strObjectMap);*/

  347.  
  348. //10.1 User对象

  349. System.out.println("getStringToObject by User:");

  350. User stringObjectUser = m.getStringToObject(strUsers,User.class);

  351. System.out.println(JSONObject.toJSONString(stringObjectUser).toString());

  352.  
  353. //10.2 Map对象

  354. System.out.println("getStringToObject by Map:");

  355. Map stringObjectMap = m.getStringToObject(strUsersMap,Map.class);

  356. System.out.println(JSONObject.toJSONString(stringObjectMap).toString());

  357.  
  358.  
  359. //11

  360. System.out.println("setAddJSONObject by User:");

  361. m.setAddJSONObject();

  362.  
  363. }

  364.  
  365. }

  366.  

 

Json字符串转对象和转List集合操作(json-lib版本)

https://blog.youkuaiyun.com/liangmaoxuan/article/details/80642880
 

 

 

总结不好多多担待,文章只单纯个人总结,如不好勿喷,技术有限,有错漏麻烦指正提出。本人QQ:373965070

 

--------------------- 本文来自 加柠檬海稻 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/liangmaoxuan/article/details/80640259?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值