JsonUtil.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package api.common.util;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.JavaType;
  4. import com.fasterxml.jackson.databind.JsonNode;
  5. import com.fasterxml.jackson.databind.ObjectMapper;
  6. import com.fasterxml.jackson.databind.node.TextNode;
  7. import com.fasterxml.jackson.databind.type.TypeFactory;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. public class JsonUtil {
  13. private static final ObjectMapper mapper = new ObjectMapper();
  14. /**
  15. * bean 转成 json
  16. *
  17. * @param bean bean 对象
  18. * @param <T> 声明为泛型方法
  19. * @return json 字符串
  20. * @throws JsonProcessingException 异常
  21. */
  22. public static <T> String beanToJson(T bean) throws JsonProcessingException {
  23. return new ObjectMapper().writeValueAsString(bean);
  24. }
  25. /**
  26. * json 转成 bean
  27. *
  28. * @param json json 字符串
  29. * @param tClass 返回值类型
  30. * @param <T> 声明为泛型方法
  31. * @return bean 对象
  32. * @throws JsonProcessingException 异常
  33. */
  34. public static <T> T jsonToBean(String json, Class<T> tClass) throws JsonProcessingException {
  35. return new ObjectMapper().readValue(json, tClass);
  36. }
  37. /**
  38. * bean 转成 json
  39. *
  40. * @param list 列表对象
  41. * @param <T> 声明为泛型方法
  42. * @return json 字符串
  43. * @throws JsonProcessingException 异常
  44. */
  45. public static <T> String listToJson(T list) throws JsonProcessingException {
  46. return new ObjectMapper().writeValueAsString(list);
  47. }
  48. public static <T> List<T> jsonToList(String json, Class<T> tClass) throws JsonProcessingException {
  49. JavaType javaType = TypeFactory.defaultInstance().constructParametricType(List.class, tClass);
  50. if(ObjectUtil.isNull(json)){
  51. return new ArrayList<>();
  52. }
  53. List<T> list = new ObjectMapper().readValue(json,javaType);
  54. return list;
  55. }
  56. public static Map jsonToMap(String json) {
  57. try {
  58. return new ObjectMapper().readValue(json, HashMap.class);
  59. } catch (Exception e) {
  60. e.printStackTrace();
  61. }
  62. return new HashMap();
  63. }
  64. public static JsonNode readTree(String json) {
  65. try {
  66. JsonNode jsonNode = mapper.readTree(json);
  67. } catch (JsonProcessingException e) {
  68. e.printStackTrace();
  69. }
  70. return new TextNode("");
  71. }
  72. }