分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

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

发布时间:2023-09-06 01:57责任编辑:苏小强关键词:jsjson

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

一、基于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)

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved