Json转换工具类(基于google的Gson和阿里的fastjson)
在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法
一、基于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>>>() {
});
} }
Json转换工具类(基于google的Gson和阿里的fastjson)的更多相关文章
- java json转换工具类
在java项目中,通常会用到json类型的转换,常常需要对 json字符串和对象进行相互转换. 在制作自定义的json转换类之前,先引入以下依赖 <!--json相关工具--><de ...
- json转换工具类
using System;using System.Collections.Generic;using System.Text;using Newtonsoft.Json;using System.I ...
- json转换工具类:json<===>list或者对象
public class JsonTools { /** * POJO 转 JSON */ public static String createJsonString(Object object) { ...
- Json与javaBean之间的转换工具类
/** * Json与javaBean之间的转换工具类 * * {@code 现使用json-lib组件实现 * 需要 * json-lib-2.4-jdk15.jar * ...
- Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套
原文链接:http://www.itjhwd.com/java_json/ 代码 package com.itjh.mmp.util; import java.io.BufferedReader; i ...
- java处理json的工具类(list,map和json的之间的转换)
需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...
- 处理json的工具类({本类为处理json的工具类})
<jackson.version>2.2.3</jackson.version> <!-- json --> <dependency> <grou ...
- 日期转换工具类 CommUtil.java
package com.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.ut ...
- Android Bitmap与DrawAble与byte[]与InputStream之间的转换工具类【转】
package com.soai.imdemo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; ...
随机推荐
- Gluster vs Ceph:开源存储领域的正面较量
https://www.oschina.net/news/49048/gluster-vs-ceph 引言:开源存储软件Ceph和Gluster能够提供相似的特性并且能够为用户节省不小的开支.那么谁更 ...
- vim学习笔记(11):vim 去掉<200b>
vim查看文件,发现多了<200b>字符,使用/200b搜索匹配不上:grep 200b 也匹配不上 查询后才知道:200b是:Unicode Character 'ZERO WIDTH ...
- 李洪强iOS经典面试题
李洪强iOS经典面试题 1. struct和class的区别 swift中,class是引用类型,struct是值类型.值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象的一个"指 ...
- 关于 android receiver
可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidMa ...
- Java中的异常处理:何时抛出异常,何时捕获异常,何时处理异常?
Java中的异常处理:何时抛出异常,何时捕获异常? 2017-06-07 1 异常分类 Throwable对象可以分为两组: 一组是unchecked异常,异常处理机制往往不用于这组异常,包括: Er ...
- 7个华丽的基于Canvas的HTML5动画
说起HTML5,可能让你印象更深的是其基于Canvas的动画特效,虽然Canvas在HTML5中的应用并不全都是动画制作,但其动画效果确实让人震惊.本文收集了7个最让人难忘的HTML5 Canvas动 ...
- 完美解决苹果电脑mac终端无法输入大写T的问题
[本文出自天外归云的博客园] 最近突然发现我的苹果电脑mac终端无法输入大写字母T,今天终于在同事的帮助下解决了!之前在网上查解决方法,感觉步骤描述欠佳!今天记录一下这个踩坑经验: 完美解决! 首先打 ...
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...
- python json (loads(),load(),jump(),jumps())
# loads() str to json data# jumps() json to str# jump() json to filedef ladstest(): data = '{"n ...
- swift-Xcode7.x(7.1,7.2,7.3)新建playground运行不能运行
swift-Xcode7.xhtml, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror- ...