| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package com.loan.system.utils;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.serializer.SerializeConfig;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * @author EdwinXu
- * @date 2020/9/15 - 19:23
- * @Description 基于 fastjson 封装的 json 工具类
- */
- public final class JsonUtil {
- private final static Logger logger = LoggerFactory.getLogger(JsonUtil.class);
- private static final SerializeConfig SERIALIZE_CONFIG;
- private static final SerializerFeature[] SERIALIZER_FEATURES = {
- // 输出空置字段
- SerializerFeature.WriteMapNullValue,
- // list字段如果为null,输出为[],而不是null
- SerializerFeature.WriteNullListAsEmpty,
- // 数值字段如果为null,输出为0,而不是null
- SerializerFeature.WriteNullNumberAsZero,
- // Boolean字段如果为null,输出为false,而不是null
- SerializerFeature.WriteNullBooleanAsFalse,
- // 字符类型字段如果为null,输出为"",而不是null
- SerializerFeature.WriteNullStringAsEmpty
- };
- static {
- SERIALIZE_CONFIG = new SerializeConfig();
- SERIALIZE_CONFIG.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
- }
- /**
- * Object to Json String 字符串输出
- * @param object
- * @return: java.lang.String
- */
- public static String toJson(Object object){
- try {
- return JSON.toJSONString(object);
- } catch (Exception e) {
- logger.error("JsonUtil | method=toJSON() | 对象转为Json字符串 Error!" + e.getMessage(), e);
- }
- return null;
- }
- /**
- * Object TO Json String Json-lib 兼容的日期输出格式
- * @param object
- * @return: java.lang.String
- */
- public static String toJSONLib(Object object) {
- try {
- return JSON.toJSONString(object, SERIALIZE_CONFIG, SERIALIZER_FEATURES);
- } catch (Exception e) {
- logger.error("JsonUtil | method=toJSONLib() | 对象转为 Json 字符串 Json-lib 兼容的日期输出格式 Error!" + e.getMessage(), e);
- }
- return null;
- }
- /**
- * 转换为数组 Object
- * @param text
- * @return: java.lang.Object[]
- */
- public static Object[] toArray(String text) {
- try {
- return toArray(text, null);
- } catch (Exception e) {
- logger.error("JsonUtil | method=toArray() | 将json格式的数据转换为数组 Object Error!" + e.getMessage(), e);
- }
- return null;
- }
- /***
- * 转换为数组 (可指定类型)
- * @param text
- * @param clazz
- * @return: java.lang.Object[]
- */
- public static <T> Object[] toArray(String text, Class<T> clazz) {
- try {
- return JSON.parseArray(text, clazz).toArray();
- } catch (Exception e) {
- logger.error("JsonUtil | method=toArray() | 将json格式的数据转换为数组 (可指定类型) Error!" + e.getMessage(), e);
- }
- return null;
- }
- /***
- * Json 转为 Java Bean
- * @param text
- * @param clazz
- * @return: T
- */
- public static <T> T toBean(String text, Class<T> clazz) {
- try {
- return JSON.parseObject(text, clazz);
- } catch (Exception e) {
- logger.error("JsonUtil | method=toBean() | Json 转为 Java Bean Error!" + e.getMessage(), e);
- }
- return null;
- }
- /** Json 转为 Map */
- public static Map<?, ?> toMap(String json) {
- try {
- return JSON.parseObject(json);
- } catch (Exception e) {
- logger.error("JsonUtil | method=toMap() | Json 转为 Map {},{}" + e.getMessage(), e);
- }
- return null;
- }
- /***
- * Json 转 List,Class 集合中泛型的类型,非集合本身,可json-lib兼容的日期格式
- * @param text
- * @param clazz
- * @return: java.util.List<T>
- */
- public static <T> List<T> toList(String text, Class<T> clazz) {
- try {
- return JSON.parseArray(text, clazz);
- } catch (Exception e) {
- logger.error("JsonUtil | method=toList() | Json 转为 List {},{}" + e.getMessage(), e);
- }
- return null;
- }
- }
|