package com.moka.hcm.common.obutils; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.TimeZone; @Slf4j public class JsonUtil { public static final ObjectMapper mapper = new ObjectMapper(); static{ // 设置时间时区 mapper.setTimeZone(TimeZone.getDefault()); // 忽略没有的字段 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); } public static String toJsonString(Object obj) { if (obj == null) { return null; } if (obj.getClass() == String.class) { return (String) obj; } try { return mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { log.error("json序列化出错:" + obj, e); return null; } } public static <T> T toBean(String json, Class<T> tClass) { try { return mapper.readValue(json, tClass); } catch (IOException e) { log.error("json解析出错:" + json, e); return null; } } public static <E> List<E> toList(String json, Class<E> eClass) { try { return mapper.readValue(json, mapper.getTypeFactory().constructCollectionType(List.class, eClass)); } catch (IOException e) { log.error("json解析出错:" + json, e); return null; } } public static <K, V> Map<K, V> toMap(String json, Class<K> kClass, Class<V> vClass) { try { return mapper.readValue(json, mapper.getTypeFactory().constructMapType(Map.class, kClass, vClass)); } catch (IOException e) { log.error("json解析出错:" + json, e); return null; } } public static boolean isJson(String string) { try { if(StringUtils.isNotBlank(string)){ JSONObject data = JSONObject.parseObject(string); return data!=null; } return false; } catch (Exception e) { return false; } } public static boolean isInteger(JSONObject jsonObject) { try { if(null != jsonObject){ Integer data = jsonObject.toJavaObject(Integer.class); return data!=null; } return false; } catch (Exception e) { return false; } } }