JsonUtil.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package com.zx.dataservice.utils.redis;
  2. import org.apache.commons.lang3.StringUtils;
  3. import org.codehaus.jackson.map.DeserializationConfig;
  4. import org.codehaus.jackson.map.ObjectMapper;
  5. import org.codehaus.jackson.map.SerializationConfig;
  6. import org.codehaus.jackson.map.annotate.JsonSerialize;
  7. import org.codehaus.jackson.type.JavaType;
  8. import org.codehaus.jackson.type.TypeReference;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import java.text.SimpleDateFormat;
  12. public class JsonUtil {
  13. private static final Logger log = LoggerFactory.getLogger(JsonUtil.class);
  14. private static ObjectMapper objectMapper = new ObjectMapper();
  15. static {
  16. objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.ALWAYS);
  17. objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
  18. objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
  19. objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
  20. objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  21. }
  22. public static <T> String obj2String(T obj) {
  23. if (obj == null) {
  24. return null;
  25. }
  26. try {
  27. return (obj instanceof String) ? (String) obj : objectMapper.writeValueAsString(obj);
  28. } catch (Exception e) {
  29. log.warn("XC JsonUtil Parse obj to string error ", e);
  30. return null;
  31. }
  32. }
  33. public static <T> String obj2StringPretty(T obj) {
  34. if (obj == null) {
  35. return null;
  36. }
  37. try {
  38. return (obj instanceof String) ? (String) obj : objectMapper
  39. .writerWithDefaultPrettyPrinter().writeValueAsString(obj);
  40. } catch (Exception e) {
  41. log.warn("XC JsonUtil Parse obj to string error ", e);
  42. return null;
  43. }
  44. }
  45. public static <T> T string2Obj(String str, Class<T> clazz) {
  46. if (StringUtils.isEmpty(str) || clazz == null) {
  47. return null;
  48. }
  49. try {
  50. return (T) (clazz.equals(String.class) ? str : objectMapper.readValue(str, clazz));
  51. } catch (Exception e) {
  52. log.warn("XC 1 JsonUtil Parse string to obj error", e);
  53. return null;
  54. }
  55. }
  56. public static <T> T string2Obj(String str, TypeReference<T> typeReference) {
  57. if (StringUtils.isEmpty(str) || typeReference == null) {
  58. return null;
  59. }
  60. try {
  61. return (T) (typeReference.getType().equals(String.class) ? str : objectMapper
  62. .readValue(str, typeReference));
  63. } catch (Exception e) {
  64. log.warn("XC 2 JsonUtil Parse string to obj error", e);
  65. return null;
  66. }
  67. }
  68. public static <T> T string2Obj(String str, Class<?> collectionClass, Class... elementClasses) {
  69. JavaType javaType = objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
  70. try {
  71. return (T) objectMapper.readValue(str, javaType);
  72. } catch (Exception e) {
  73. log.warn("XC 3 JsonUtil Parse string to obj error", e);
  74. return null;
  75. }
  76. }
  77. public static void main(String[] args) {
  78. }
  79. }