在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法

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

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

        <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.3</version>
</dependency>

2. 编写工具类GsonUtil

package com.json.util;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import java.util.List;
import java.util.Map; /**
*
* @Description: 基于com.google.code.gson封装的json转换工具类
* @author lgs
* @date 2018年5月30日
*
*/
public class GsonUtil {
private static Gson gson = null;
static {
if (gson == null) {
gson = new Gson();
}
} private GsonUtil() {
} /**
* 对象转成json
*
* @param object
* @return json
*/
public static String gsonString(Object object) {
String gsonString = null;
if (gson != null) {
gsonString = gson.toJson(object);
}
return gsonString;
} /**
* Json转成对象
*
* @param gsonString
* @param cls
* @return 对象
*/
public static <T> T gsonToBean(String gsonString, Class<T> cls) {
T t = null;
if (gson != null) {
t = gson.fromJson(gsonString, cls);
}
return t;
} /**
* json转成list<T>
*
* @param gsonString
* @param cls
* @return list<T>
*/
public static <T> List<T> gsonToList(String gsonString, Class<T> cls) {
List<T> list = null;
if (gson != null) {
list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
}.getType());
}
return list;
} /**
* json转成list中有map的
*
* @param gsonString
* @return List<Map<String, T>>
*/
public static <T> List<Map<String, T>> gsonToListMaps(String gsonString) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
} /**
* json转成map的
*
* @param gsonString
* @return Map<String, T>
*/
public static <T> Map<String, T> gsonToMaps(String gsonString) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
}

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

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

        <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.4</version>
</dependency> 

2. 编写工具类FastJsonUtils

package com.json.util;

import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
/**
*
* @Description: 基于fastjson封装的json转换工具类
* @author lgs
* @date 2018年5月30日
*
*/
public class FastJsonUtils { /**
* 功能描述:把JSON数据转换成指定的java对象
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return 指定的java对象
*/
public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
return JSON.parseObject(jsonData, clazz);
} /**
* 功能描述:把java对象转换成JSON数据
* @param object java对象
* @return JSON数据
*/
public static String getBeanToJson(Object object) {
return JSON.toJSONString(object);
} /**
* 功能描述:把JSON数据转换成指定的java对象列表
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return List<T>
*/
public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
return JSON.parseArray(jsonData, clazz);
} /**
* 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
* @param jsonData JSON数据
* @return List<Map<String, Object>>
*/
public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
});
} }

最新文章

  1. Angular通过XHR加载模板而限制使用file://(解决方案)
  2. C++const限定符
  3. BZOJ1040 [ZJOI2008]骑士
  4. Opencv二值图像的分布直方图
  5. 彻底的放弃.net
  6. search-a-2d-matrix(二维矩阵查找)
  7. php面试题之二——Javascript(基础部分)
  8. poi导出Excel报表多表头双层表头、合并单元格
  9. xcode 预编译头文件
  10. char 与 unsigned char的本质区别
  11. GDB的non-stop模式
  12. 介绍一个成功的 Git 分支模型 Release 分支
  13. 201521123074 《Java程序设计》第10周学习总结
  14. JAVA对象头
  15. egrep及扩展正则表达式 与正则表达式不同处
  16. 每天写两个的java常见面试题—final 和static 的用法
  17. angular 中自己常用的下拉框获取值方法
  18. android中Bitmap的放大和缩小的方法
  19. Game2048
  20. 我的第一个bootstrap实例

热门文章

  1. FLINK SQL Calcite原理
  2. text字段增加处理
  3. [Windows Azure] Windows Azure Identity
  4. SparkStreaming python 读取kafka数据将结果输出到单个指定本地文件
  5. visio直线交叉相交跨线修改
  6. Spring框架中InitializingBean执行顺序
  7. junit import org.junit.Test 报错
  8. 微信小程序学习资料
  9. C语言 &#183; 排列数 &#183; 排列式
  10. C语言 &#183; 比较字符串