当前位置:   article > 正文

Json转换工具类(基于google的Gson和阿里的fastjson)_com.google.code.gson

com.google.code.gson

一、基于com.google.code.gson封装的json转换工具类

1、在pom.xml文件里面引入gson的依赖

  1. <dependency>
  2. <groupId>com.google.code.gson</groupId>
  3. <artifactId>gson</artifactId>
  4. <version>2.8.3</version>
  5. </dependency>

2、编写工具类GsonUtil

  1. package com.josn;
  2. import java.util.List;
  3. import java.util.Map;
  4. import com.google.gson.Gson;
  5. import com.google.gson.reflect.TypeToken;
  6. /**
  7. * @ClassName: GsonUtil
  8. * @Description: 基于com.google.code.gson封装的json转换工具类
  9. */
  10. public class GsonUtil {
  11. private static Gson gson = null;
  12. static {
  13. if (gson == null) {
  14. gson = new Gson();
  15. }
  16. }
  17. /**
  18. * 对象转成json
  19. *
  20. * @param object
  21. * @return json
  22. */
  23. public static String gsonString(Object object) {
  24. String gsonString = null;
  25. if (gson != null) {
  26. gsonString = gson.toJson(object);
  27. }
  28. return gsonString;
  29. }
  30. /**
  31. * Json转成对象
  32. *
  33. * @param gsonString
  34. * @param cls
  35. * @return 对象
  36. */
  37. public static <T> T gsonToBean(String gsonString, Class<T> cls) {
  38. T t = null;
  39. if (gson != null) {
  40. t = gson.fromJson(gsonString, cls);
  41. }
  42. return t;
  43. }
  44. /**
  45. * json转成list<T>
  46. *
  47. * @param gsonString
  48. * @param cls
  49. * @return list<T>
  50. */
  51. public static <T> List<T> gsonToList(String gsonString, Class<T> cls) {
  52. List<T> list = null;
  53. if (gson != null) {
  54. list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
  55. }.getType());
  56. }
  57. return list;
  58. }
  59. /**
  60. * json转成list中有map的
  61. *
  62. * @param gsonString
  63. * @return List<Map<String, T>>
  64. */
  65. public static <T> List<Map<String, T>> gsonToListMaps(String gsonString) {
  66. List<Map<String, T>> list = null;
  67. if (gson != null) {
  68. list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() {
  69. }.getType());
  70. }
  71. return list;
  72. }
  73. /**
  74. * json转成map的
  75. *
  76. * @param gsonString
  77. * @return Map<String, T>
  78. */
  79. public static <T> Map<String, T> gsonToMaps(String gsonString) {
  80. Map<String, T> map = null;
  81. if (gson != null) {
  82. map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
  83. }.getType());
  84. }
  85. return map;
  86. }
  87. /**
  88. * @Title: gsonJsonStrToBean
  89. * @Description: json转bean
  90. * @param jsonStr
  91. * @param tokenType
  92. * @return
  93. */
  94. public static <T> Object gsonJsonStrToBean(String jsonStr, TypeToken tokenType) {
  95. Object obj = null;
  96. if (null == jsonStr || null != tokenType) {
  97. return null;
  98. }
  99. try {
  100. if (gson != null) {
  101. java.lang.reflect.Type type = tokenType.getType();
  102. obj = gson.fromJson(jsonStr, type);
  103. }
  104. } catch (Exception e) {
  105. e.printStackTrace();
  106. }
  107. return obj;
  108. }
  109. }

二、基于阿里的fastjson封装的json转换工具类

1. 在pom.xml文件里面引入fastjson的依赖

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>fastjson</artifactId>
  4. <version>1.2.4</version>
  5. </dependency>

2. 编写工具类FastJsonUtil

  1. package com.josn;
  2. import java.util.List;
  3. import java.util.Map;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.TypeReference;
  6. /**
  7. * @ClassName: FastJsonUtils
  8. * @Description: 基于fastjson封装的json转换工具类
  9. */
  10. public class FastJsonUtil {
  11. /**
  12. * 功能描述:把JSON数据转换成指定的java对象
  13. * @param jsonData JSON数据
  14. * @param clazz 指定的java对象
  15. * @return 指定的java对象
  16. */
  17. public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
  18. return JSON.parseObject(jsonData, clazz);
  19. }
  20. /**
  21. * 功能描述:把java对象转换成JSON数据
  22. * @param object java对象
  23. * @return JSON数据
  24. */
  25. public static String getBeanToJson(Object object) {
  26. return JSON.toJSONString(object);
  27. }
  28. /**
  29. * 功能描述:把JSON数据转换成指定的java对象列表
  30. * @param jsonData JSON数据
  31. * @param clazz 指定的java对象
  32. * @return List<T>
  33. */
  34. public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
  35. return JSON.parseArray(jsonData, clazz);
  36. }
  37. /**
  38. * 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
  39. * @param jsonData JSON数据
  40. * @return List<Map<String, Object>>
  41. */
  42. public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
  43. return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
  44. });
  45. }
  46. }

原文:https://www.cnblogs.com/leeSmall/p/9114134.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/834196
推荐阅读
相关标签
  

闽ICP备14008679号