JsonUtil.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package jnpf.util;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.alibaba.fastjson.TypeReference;
  6. import com.alibaba.fastjson.serializer.SerializerFeature;
  7. import jnpf.constant.MsgCode;
  8. import jnpf.exception.DataException;
  9. import java.util.List;
  10. import java.util.Map;
  11. /**
  12. * JSON转换工具类
  13. *
  14. * @author JNPF开发平台组
  15. * @version V3.1.0
  16. * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
  17. * @date 2019年9月26日 上午9:18
  18. */
  19. public class JsonUtil {
  20. /**
  21. * list转成JSONField
  22. * @param lists
  23. * @return
  24. */
  25. public static List listToJsonField(List lists){
  26. //空的也显示
  27. String jsonStr = JSONArray.toJSONString(lists, SerializerFeature.WriteMapNullValue);
  28. //空的不显示
  29. List list = JSONArray.parseObject(jsonStr,List.class);
  30. return list;
  31. }
  32. /**
  33. * 对象转成Map
  34. * @param object
  35. * @return
  36. */
  37. public static Map<String, Object> entityToMap(Object object){
  38. String jsonStr = JSONObject.toJSONString(object);
  39. Map<String,Object> map = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, Object>>(){});
  40. return map;
  41. }
  42. public static Map<String, String> entityToMaps(Object object){
  43. String jsonStr = JSONObject.toJSONString(object);
  44. Map<String,String> map = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, String>>(){});
  45. return map;
  46. }
  47. /**
  48. * String转成Map
  49. * @param object
  50. * @return
  51. */
  52. public static Map<String, Object> stringToMap(String object){
  53. Map<String,Object> map = JSONObject.parseObject(object, new TypeReference<Map<String, Object>>(){});
  54. return map;
  55. }
  56. /**
  57. * 功能描述:把JSON数据转换成指定的java对象
  58. * @param jsonData JSON数据
  59. * @param clazz 指定的java对象
  60. * @return 指定的java对象
  61. */
  62. public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
  63. return JSON.parseObject(jsonData, clazz);
  64. }
  65. /**
  66. * 功能描述:把JSON数据转换成JSONArray数据
  67. * @param json
  68. * @return
  69. */
  70. public static JSONArray getJsonToJsonArray(String json) { return JSONArray.parseArray(json); }
  71. /**
  72. * 功能描述:把List数据转换成JSONArray数据
  73. * @param list
  74. * @param <T>
  75. * @return
  76. */
  77. public static <T>JSONArray getListToJsonArray(List<T> list){
  78. return JSONArray.parseArray(JsonUtil.getObjectToString(list));
  79. }
  80. /**
  81. * 功能描述:把java对象转换成JSON数据
  82. * @param object java对象
  83. * @return JSON数据
  84. */
  85. public static String getObjectToString(Object object) {
  86. return JSON.toJSONString(object, SerializerFeature.WriteMapNullValue);
  87. }
  88. /**
  89. * 功能描述:把java对象转换成JSON数据
  90. * @param object java对象
  91. * @return JSON数据
  92. */
  93. public static String getObjectToStringAsDate(Object object) {
  94. return JSON.toJSONStringWithDateFormat(object, "yyy-MM-dd HH:mm:ss");
  95. }
  96. /**
  97. * 功能描述:把java对象转换成JSON数据,时间格式化
  98. * @param object java对象
  99. * @return JSON数据
  100. */
  101. public static String getObjectToStringDateFormat(Object object,String dateFormat) {
  102. return JSON.toJSONStringWithDateFormat(object, dateFormat,SerializerFeature.WriteMapNullValue);
  103. }
  104. /**
  105. * 功能描述:把JSON数据转换成指定的java对象
  106. * @param dto dto对象
  107. * @param clazz 指定的java对象
  108. * @return 指定的java对象
  109. */
  110. public static <T> T getJsonToBeanEx(Object dto, Class<T> clazz) throws DataException {
  111. if(dto==null){
  112. throw new DataException(MsgCode.FA001.get());
  113. }
  114. return JSON.parseObject(getObjectToString(dto), clazz);
  115. }
  116. /**
  117. * 功能描述:把JSON数据转换成指定的java对象列表
  118. * @param jsonData JSON数据
  119. * @param clazz 指定的java对象
  120. * @return List<T>
  121. */
  122. public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
  123. return JSON.parseArray(jsonData, clazz);
  124. }
  125. /**
  126. * 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
  127. * @param jsonData JSON数据
  128. * @return List<Map<String, Object>>
  129. */
  130. public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
  131. return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {});
  132. }
  133. /**
  134. * 功能描述:把JSONArray数据转换成较为复杂的List<Map<String, Object>>
  135. * @param jsonArray JSONArray数据
  136. * @return List<Map<String, Object>>
  137. */
  138. public static List<Map<String, Object>> getJsonToList(JSONArray jsonArray) {
  139. return JSON.parseObject(JSON.toJSONString(jsonArray), new TypeReference<List<Map<String, Object>>>() {});
  140. }
  141. /**
  142. * 功能描述:把JSON数据转换成指定的java对象
  143. * @param dto dto对象
  144. * @param clazz 指定的java对象
  145. * @return 指定的java对象
  146. */
  147. public static <T> T getJsonToBean(Object dto, Class<T> clazz){
  148. return JSON.parseObject(getObjectToString(dto), clazz);
  149. }
  150. /**
  151. * 功能描述:把JSON数据转换成指定的java对象列表
  152. * @param dto dto对象
  153. * @param clazz 指定的java对象
  154. * @return List<T>
  155. */
  156. public static <T> List<T> getJsonToList(Object dto, Class<T> clazz) {
  157. return JSON.parseArray(getObjectToString(dto), clazz);
  158. }
  159. }