json数据与实体类之间的相互转换

短命女 2023-10-17 12:56 84阅读 0赞
  1. package com.jingyou.application.common;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.StringTokenizer;
  8. import net.sf.json.JSONArray;
  9. import net.sf.json.JSONObject;
  10. /**
  11. * JSON转换器.博主为大家列举N种json转换格式,实体,集合(List,Map),数组等类型,一定是大家需要和喜爱的!
  12. 详细阅读,收益匪浅!
  13. */
  14. @SuppressWarnings("unchecked")
  15. public class JSONUtils {
  16. /**1,
  17. * 转换 ServiceDataObject生成的json字符串为JSONArray对象
  18. * @param datasJSON
  19. * @return
  20. */
  21. public static JSONArray createJSONArray(String datasJSON){
  22. String datas = JSONUtils.json2String(datasJSON, "datas");
  23. JSONArray results = new JSONArray();;
  24. JSONArray datasJSONArray = JSONArray.fromObject(datas);
  25. Iterator<JSONObject> iterator = datasJSONArray.iterator();
  26. while(iterator.hasNext()){
  27. JSONObject data = (JSONObject) iterator.next();
  28. JSONObject eachDataObject = data.getJSONObject("data");
  29. results.element(eachDataObject);
  30. }
  31. return results;
  32. }
  33. /**
  34. * 转换 ServiceDataObject生成的json字符串为List<JSONObject>对象
  35. * @param datasJSON
  36. * @return
  37. */
  38. @SuppressWarnings("rawtypes")
  39. public static List<JSONObject> createJSONObjects(String datasJSON){
  40. List<JSONObject> results = new ArrayList<JSONObject>();
  41. String datas = JSONUtils.json2String(datasJSON, "datas");
  42. JSONArray jsonArray = JSONArray.fromObject(datas);
  43. Iterator iterator = jsonArray.iterator();
  44. while(iterator.hasNext()){
  45. JSONObject data = (JSONObject) iterator.next();
  46. JSONObject eachDataObject = data.getJSONObject("data");
  47. results.add(eachDataObject);
  48. }
  49. return results;
  50. }
  51. /**
  52. * 转换 ServiceDataObject生成的json字符串为JSONObject对象
  53. * @param datasJSON
  54. * @return
  55. */
  56. @SuppressWarnings("rawtypes")
  57. public static JSONObject createJSONObject(String datasJSON){
  58. JSONObject result = new JSONObject();
  59. String datas = JSONUtils.json2String(datasJSON, "datas");
  60. JSONArray jsonArray = JSONArray.fromObject(datas);
  61. Iterator iterator = jsonArray.iterator();
  62. while(iterator.hasNext()){
  63. JSONObject data = (JSONObject) iterator.next();
  64. JSONObject eachDataObject = data.getJSONObject("data");
  65. result = eachDataObject;
  66. }
  67. return result;
  68. }
  69. /**
  70. * 将json字符串转换成List<Map>(List中是Map类型).
  71. *
  72. * @param json the json
  73. * @return List<Map>
  74. *
  75. */
  76. public static List<Map<String,Object>> jsonToList(String json) {
  77. List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>();
  78. String JSON = json.substring(1, json.length() - 1);
  79. JSON = JSON.replaceAll("},", "}^");
  80. StringTokenizer strTokenizer = new StringTokenizer(JSON, "^");
  81. while (strTokenizer.hasMoreTokens()) {
  82. String token = strTokenizer.nextToken();
  83. Map<String,Object> paraMap =getMap4Json(token);
  84. listMap.add(paraMap);
  85. }
  86. return listMap;
  87. }
  88. /**
  89. * 将单个json对象转化为Map类型.
  90. *
  91. * @param jsonString the json string
  92. * @return the 4Json
  93. *
  94. */
  95. public static Map<String,Object> getMap4Json(String jsonString) {
  96. JSONObject jsonObject = JSONObject.fromObject(jsonString);
  97. String key;
  98. Object value;
  99. Map<String,Object> valueMap = new HashMap<String,Object>();
  100. Iterator<String> keyIter = jsonObject.keys();
  101. while (keyIter.hasNext()) {
  102. key =keyIter.next();
  103. value = String.valueOf(jsonObject.get(key));
  104. valueMap.put(key, value);
  105. }
  106. return valueMap;
  107. }
  108. /**
  109. * 设置单属性的JSON对象.
  110. *
  111. * @param key the key
  112. * @param value the value
  113. * @return {a:1,b:8}
  114. *
  115. */
  116. public static String string2json(String key, String value) {
  117. JSONObject object = new JSONObject();
  118. object.put(key, value);
  119. return object.toString();
  120. }
  121. /**
  122. * 将json转为数组.
  123. *
  124. * @param json the json
  125. * @param valueClz the value clz
  126. * @return 对应的数组
  127. *
  128. */
  129. public static Object json2Array(String json, Class<?> valueClz) {
  130. JSONArray jsonArray = JSONArray.fromObject(json);
  131. return JSONArray.toArray(jsonArray, valueClz);
  132. }
  133. /**
  134. * 将Collection转换成JSON.
  135. *
  136. * @param object the object
  137. * @return the string
  138. * @param:object为集合
  139. */
  140. public static String collection2json(Object object) {
  141. JSONArray jsonArray = JSONArray.fromObject(object);
  142. return jsonArray.toString();
  143. }
  144. /**
  145. * 将数组转化为JSON.
  146. *
  147. * @param object the object
  148. * @return the string
  149. *
  150. */
  151. public static String array2json(Object object) {
  152. JSONArray jsonArray = JSONArray.fromObject(object);
  153. return jsonArray.toString();
  154. }
  155. /**
  156. * 将Map转为JSON.
  157. *
  158. * @param object the object
  159. * @return the string
  160. *
  161. */
  162. public static String map2json(Map<String,Object> object) {
  163. JSONObject jsonObject = JSONObject.fromObject(object);
  164. return jsonObject.toString();
  165. }
  166. /**
  167. * 将JSON转换成Map.
  168. *
  169. * @param keyArray the key array
  170. * @param json the json
  171. * @param valueClz the value clz
  172. * @return the map
  173. * @param:valueClz为Map中value的Class,
  174. * @param:keyArray为Map的key
  175. */
  176. @SuppressWarnings("rawtypes")
  177. public static Map json2Map(Object[] keyArray, String json, Class<?> valueClz) {
  178. JSONObject jsonObject = JSONObject.fromObject(json);
  179. Map classMap = new HashMap();
  180. for (int i = 0; i < keyArray.length; i++) {
  181. classMap.put(keyArray[i], valueClz);
  182. }
  183. return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);
  184. }
  185. /**
  186. * 将POJO转换成JSON.
  187. *
  188. * @param object the object
  189. * @return the string
  190. *
  191. */
  192. public static String bean2json(Object object) {
  193. JSONObject jsonObject = JSONObject.fromObject(object);
  194. return jsonObject.toString();
  195. }
  196. /**
  197. * 将JSON转换成POJO.
  198. *
  199. * @param json the json
  200. * @param beanClz the bean clz
  201. * @return the object
  202. *
  203. */
  204. @SuppressWarnings("rawtypes")
  205. public static Object json2Object(String json, Class beanClz) {
  206. return JSONObject.toBean(JSONObject.fromObject(json), beanClz);
  207. }
  208. /**
  209. * 将JSON转换成String.
  210. *
  211. * @param json the json
  212. * @param key the key
  213. * @return the string
  214. */
  215. public static String json2String(String json, String key) {
  216. JSONObject jsonObject = JSONObject.fromObject(json);
  217. return jsonObject.get(key).toString();
  218. }
  219. /**
  220. * 将List 转换成JSON.
  221. *
  222. * @param list the list
  223. * @return the string
  224. *
  225. */
  226. @SuppressWarnings("rawtypes")
  227. public static String list2json(List list){
  228. JSONArray jsonArray2 = JSONArray.fromObject(list);
  229. return jsonArray2.toString();
  230. }
  231. }

发表评论

表情:
评论列表 (有 0 条评论,84人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C#实体XML相互转换

    1、实体类与XML相互转换 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化。 把XML转换成相应的实体类,需要使用到Xml