cfcadd070037c9661c97af030c9e5becda93a65a.svn-base 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package com.xxl.job.admin.core.util;
  2. import com.fasterxml.jackson.core.JsonGenerationException;
  3. import com.fasterxml.jackson.core.JsonParseException;
  4. import com.fasterxml.jackson.databind.JavaType;
  5. import com.fasterxml.jackson.databind.JsonMappingException;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import java.io.IOException;
  10. /**
  11. * Jackson util
  12. *
  13. * 1、obj need private and set/get;
  14. * 2、do not support inner class;
  15. *
  16. * @author xuxueli 2015-9-25 18:02:56
  17. */
  18. public class JacksonUtil {
  19. private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class);
  20. private final static ObjectMapper objectMapper = new ObjectMapper();
  21. public static ObjectMapper getInstance() {
  22. return objectMapper;
  23. }
  24. /**
  25. * bean、array、List、Map --> json
  26. *
  27. * @param obj
  28. * @return json string
  29. * @throws Exception
  30. */
  31. public static String writeValueAsString(Object obj) {
  32. try {
  33. return getInstance().writeValueAsString(obj);
  34. } catch (JsonGenerationException e) {
  35. logger.error(e.getMessage(), e);
  36. } catch (JsonMappingException e) {
  37. logger.error(e.getMessage(), e);
  38. } catch (IOException e) {
  39. logger.error(e.getMessage(), e);
  40. }
  41. return null;
  42. }
  43. /**
  44. * string --> bean、Map、List(array)
  45. *
  46. * @param jsonStr
  47. * @param clazz
  48. * @return obj
  49. * @throws Exception
  50. */
  51. public static <T> T readValue(String jsonStr, Class<T> clazz) {
  52. try {
  53. return getInstance().readValue(jsonStr, clazz);
  54. } catch (JsonParseException e) {
  55. logger.error(e.getMessage(), e);
  56. } catch (JsonMappingException e) {
  57. logger.error(e.getMessage(), e);
  58. } catch (IOException e) {
  59. logger.error(e.getMessage(), e);
  60. }
  61. return null;
  62. }
  63. /**
  64. * string --> List<Bean>...
  65. *
  66. * @param jsonStr
  67. * @param parametrized
  68. * @param parameterClasses
  69. * @param <T>
  70. * @return
  71. */
  72. public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) {
  73. try {
  74. JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses);
  75. return getInstance().readValue(jsonStr, javaType);
  76. } catch (JsonParseException e) {
  77. logger.error(e.getMessage(), e);
  78. } catch (JsonMappingException e) {
  79. logger.error(e.getMessage(), e);
  80. } catch (IOException e) {
  81. logger.error(e.getMessage(), e);
  82. }
  83. return null;
  84. }
  85. }