package jnpf.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SerializerFeature; import jnpf.constant.MsgCode; import jnpf.exception.DataException; import java.util.List; import java.util.Map; /** * JSON转换工具类 * * @author JNPF开发平台组 * @version V3.1.0 * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com) * @date 2019年9月26日 上午9:18 */ public class JsonUtil { /** * list转成JSONField * @param lists * @return */ public static List listToJsonField(List lists){ //空的也显示 String jsonStr = JSONArray.toJSONString(lists, SerializerFeature.WriteMapNullValue); //空的不显示 List list = JSONArray.parseObject(jsonStr,List.class); return list; } /** * 对象转成Map * @param object * @return */ public static Map entityToMap(Object object){ String jsonStr = JSONObject.toJSONString(object); Map map = JSONObject.parseObject(jsonStr, new TypeReference>(){}); return map; } public static Map entityToMaps(Object object){ String jsonStr = JSONObject.toJSONString(object); Map map = JSONObject.parseObject(jsonStr, new TypeReference>(){}); return map; } /** * String转成Map * @param object * @return */ public static Map stringToMap(String object){ Map map = JSONObject.parseObject(object, new TypeReference>(){}); return map; } /** * 功能描述:把JSON数据转换成指定的java对象 * @param jsonData JSON数据 * @param clazz 指定的java对象 * @return 指定的java对象 */ public static T getJsonToBean(String jsonData, Class clazz) { return JSON.parseObject(jsonData, clazz); } /** * 功能描述:把JSON数据转换成JSONArray数据 * @param json * @return */ public static JSONArray getJsonToJsonArray(String json) { return JSONArray.parseArray(json); } /** * 功能描述:把List数据转换成JSONArray数据 * @param list * @param * @return */ public static JSONArray getListToJsonArray(List list){ return JSONArray.parseArray(JsonUtil.getObjectToString(list)); } /** * 功能描述:把java对象转换成JSON数据 * @param object java对象 * @return JSON数据 */ public static String getObjectToString(Object object) { return JSON.toJSONString(object, SerializerFeature.WriteMapNullValue); } /** * 功能描述:把java对象转换成JSON数据 * @param object java对象 * @return JSON数据 */ public static String getObjectToStringAsDate(Object object) { return JSON.toJSONStringWithDateFormat(object, "yyy-MM-dd HH:mm:ss"); } /** * 功能描述:把java对象转换成JSON数据,时间格式化 * @param object java对象 * @return JSON数据 */ public static String getObjectToStringDateFormat(Object object,String dateFormat) { return JSON.toJSONStringWithDateFormat(object, dateFormat,SerializerFeature.WriteMapNullValue); } /** * 功能描述:把JSON数据转换成指定的java对象 * @param dto dto对象 * @param clazz 指定的java对象 * @return 指定的java对象 */ public static T getJsonToBeanEx(Object dto, Class clazz) throws DataException { if(dto==null){ throw new DataException(MsgCode.FA001.get()); } return JSON.parseObject(getObjectToString(dto), clazz); } /** * 功能描述:把JSON数据转换成指定的java对象列表 * @param jsonData JSON数据 * @param clazz 指定的java对象 * @return List */ public static List getJsonToList(String jsonData, Class clazz) { return JSON.parseArray(jsonData, clazz); } /** * 功能描述:把JSON数据转换成较为复杂的List> * @param jsonData JSON数据 * @return List> */ public static List> getJsonToListMap(String jsonData) { return JSON.parseObject(jsonData, new TypeReference>>() {}); } /** * 功能描述:把JSONArray数据转换成较为复杂的List> * @param jsonArray JSONArray数据 * @return List> */ public static List> getJsonToList(JSONArray jsonArray) { return JSON.parseObject(JSON.toJSONString(jsonArray), new TypeReference>>() {}); } /** * 功能描述:把JSON数据转换成指定的java对象 * @param dto dto对象 * @param clazz 指定的java对象 * @return 指定的java对象 */ public static T getJsonToBean(Object dto, Class clazz){ return JSON.parseObject(getObjectToString(dto), clazz); } /** * 功能描述:把JSON数据转换成指定的java对象列表 * @param dto dto对象 * @param clazz 指定的java对象 * @return List */ public static List getJsonToList(Object dto, Class clazz) { return JSON.parseArray(getObjectToString(dto), clazz); } }