JsonUtil.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.loan.system.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.serializer.SerializeConfig;
  4. import com.alibaba.fastjson.serializer.SerializerFeature;
  5. import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import java.util.Date;
  9. import java.util.List;
  10. import java.util.Map;
  11. /**
  12. * @author EdwinXu
  13. * @date 2020/9/15 - 19:23
  14. * @Description 基于 fastjson 封装的 json 工具类
  15. */
  16. public final class JsonUtil {
  17. private final static Logger logger = LoggerFactory.getLogger(JsonUtil.class);
  18. private static final SerializeConfig SERIALIZE_CONFIG;
  19. private static final SerializerFeature[] SERIALIZER_FEATURES = {
  20. // 输出空置字段
  21. SerializerFeature.WriteMapNullValue,
  22. // list字段如果为null,输出为[],而不是null
  23. SerializerFeature.WriteNullListAsEmpty,
  24. // 数值字段如果为null,输出为0,而不是null
  25. SerializerFeature.WriteNullNumberAsZero,
  26. // Boolean字段如果为null,输出为false,而不是null
  27. SerializerFeature.WriteNullBooleanAsFalse,
  28. // 字符类型字段如果为null,输出为"",而不是null
  29. SerializerFeature.WriteNullStringAsEmpty
  30. };
  31. static {
  32. SERIALIZE_CONFIG = new SerializeConfig();
  33. SERIALIZE_CONFIG.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
  34. }
  35. /**
  36. * Object to Json String 字符串输出
  37. * @param object
  38. * @return: java.lang.String
  39. */
  40. public static String toJson(Object object){
  41. try {
  42. return JSON.toJSONString(object);
  43. } catch (Exception e) {
  44. logger.error("JsonUtil | method=toJSON() | 对象转为Json字符串 Error!" + e.getMessage(), e);
  45. }
  46. return null;
  47. }
  48. /**
  49. * Object TO Json String Json-lib 兼容的日期输出格式
  50. * @param object
  51. * @return: java.lang.String
  52. */
  53. public static String toJSONLib(Object object) {
  54. try {
  55. return JSON.toJSONString(object, SERIALIZE_CONFIG, SERIALIZER_FEATURES);
  56. } catch (Exception e) {
  57. logger.error("JsonUtil | method=toJSONLib() | 对象转为 Json 字符串 Json-lib 兼容的日期输出格式 Error!" + e.getMessage(), e);
  58. }
  59. return null;
  60. }
  61. /**
  62. * 转换为数组 Object
  63. * @param text
  64. * @return: java.lang.Object[]
  65. */
  66. public static Object[] toArray(String text) {
  67. try {
  68. return toArray(text, null);
  69. } catch (Exception e) {
  70. logger.error("JsonUtil | method=toArray() | 将json格式的数据转换为数组 Object Error!" + e.getMessage(), e);
  71. }
  72. return null;
  73. }
  74. /***
  75. * 转换为数组 (可指定类型)
  76. * @param text
  77. * @param clazz
  78. * @return: java.lang.Object[]
  79. */
  80. public static <T> Object[] toArray(String text, Class<T> clazz) {
  81. try {
  82. return JSON.parseArray(text, clazz).toArray();
  83. } catch (Exception e) {
  84. logger.error("JsonUtil | method=toArray() | 将json格式的数据转换为数组 (可指定类型) Error!" + e.getMessage(), e);
  85. }
  86. return null;
  87. }
  88. /***
  89. * Json 转为 Java Bean
  90. * @param text
  91. * @param clazz
  92. * @return: T
  93. */
  94. public static <T> T toBean(String text, Class<T> clazz) {
  95. try {
  96. return JSON.parseObject(text, clazz);
  97. } catch (Exception e) {
  98. logger.error("JsonUtil | method=toBean() | Json 转为 Java Bean Error!" + e.getMessage(), e);
  99. }
  100. return null;
  101. }
  102. /** Json 转为 Map */
  103. public static Map<?, ?> toMap(String json) {
  104. try {
  105. return JSON.parseObject(json);
  106. } catch (Exception e) {
  107. logger.error("JsonUtil | method=toMap() | Json 转为 Map {},{}" + e.getMessage(), e);
  108. }
  109. return null;
  110. }
  111. /***
  112. * Json 转 List,Class 集合中泛型的类型,非集合本身,可json-lib兼容的日期格式
  113. * @param text
  114. * @param clazz
  115. * @return: java.util.List<T>
  116. */
  117. public static <T> List<T> toList(String text, Class<T> clazz) {
  118. try {
  119. return JSON.parseArray(text, clazz);
  120. } catch (Exception e) {
  121. logger.error("JsonUtil | method=toList() | Json 转为 List {},{}" + e.getMessage(), e);
  122. }
  123. return null;
  124. }
  125. }