1、maven依赖包
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
2、工具类
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
/**
* json转换工具类
*
*/
public class GsonUtils {
private static Gson gson = null;
private GsonUtils() {
}
static {
if (gson == null) {
gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
// 转换Float、Double类型字段需要设置,不设置生产出现过问题
.serializeSpecialFloatingPointValues()
.create();
}
}
/**
* 将对象转换成json格式字符串
*
* @param object
* @return
*/
public static String objToStr(Object object) {
return Optional.ofNullable(object)
.map(obj -> gson.toJson(obj))
.orElse(null);
}
/**
* 将json字符串转换成对象
*
* @param str
* @param clazz
* @param <T>
* @return
*/
public static <T> T StrToObj(String str, Class<T> clazz) {
return gson.fromJson(str, clazz);
}
/**
* json字符串转成List集合
*
* @param json
* @param clazz
* @param <T>
* @return
*/
public static <T> List<T> strToList(String json, Class<T> clazz) {
List<T> list = new ArrayList<>();
if (StringUtils.isNotBlank(json)) {
JsonArray array = JsonParser.parseString(json).getAsJsonArray();
for (final JsonElement element : array) {
list.add(gson.fromJson(element, clazz));
}
}
return list;
}
/**
* json字符串转成List集合
*
* @param json
* @param clazz
* @param <T>
* @return
*/
public static <T> List<T> strToListWithTypeToken(String json, Class<T> clazz) {
List<T> list = new ArrayList<>();
if (StringUtils.isNotBlank(json)) {
list = gson.fromJson(json, new TypeToken<List<T>>() {}.getType());
}
return list;
}
/**
* json字符串转成List包含Map集合
*
* @param json
* @param <T>
* @return
*/
public static <T> List<Map<String, T>> strToListMap(String json) {
List<Map<String, T>> list = new ArrayList<>();
if (StringUtils.isNotBlank(json)) {
list = gson.fromJson(json, new TypeToken<List<Map<String, T>>>() {}.getType());
}
return list;
}
/**
* json字符串转成map
*
* @param json
* @param <T>
* @return
*/
public static <T> Map<String, T> strToMap(String json) {
Map<String, T> map = new HashMap<>();
if (StringUtils.isNotBlank(json)) {
map = gson.fromJson(json, new TypeToken<List<Map<String, T>>>() {}.getType());
}
return map;
}
}
本文介绍了如何使用Gson库进行JSON操作,包括对象转JSON字符串、JSON字符串转对象、JSON到List和Map的转换。同时,引入了Apache Commons Lang3库进行字符串处理,确保了转换的准确性和效率。
4293

被折叠的 条评论
为什么被折叠?



