🎨 json 工具类改名 && 代码格式化
This commit is contained in:
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.hccake.ballcat.common.core.jackson.JavaTimeModule;
|
||||
import com.hccake.ballcat.common.core.jackson.NullSerializerModifier;
|
||||
import com.hccake.ballcat.common.util.JsonUtils;
|
||||
import com.hccake.ballcat.common.util.json.JacksonAdapter;
|
||||
import com.hccake.ballcat.common.util.json.JacksonJsonToolAdapter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -26,7 +26,7 @@ public class JsonConfig {
|
||||
@ConditionalOnClass(ObjectMapper.class)
|
||||
@ConditionalOnMissingBean(ObjectMapper.class)
|
||||
public ObjectMapper objectMapper() {
|
||||
JacksonAdapter adapter = (JacksonAdapter) JsonUtils.getAdapter();
|
||||
JacksonJsonToolAdapter adapter = (JacksonJsonToolAdapter) JsonUtils.getJsonTool();
|
||||
adapter.config(mapper -> {
|
||||
// NULL值修改
|
||||
mapper.setSerializerFactory(
|
||||
@@ -34,7 +34,7 @@ public class JsonConfig {
|
||||
// 时间解析器
|
||||
mapper.registerModule(new JavaTimeModule());
|
||||
});
|
||||
return JacksonAdapter.getMapper();
|
||||
return JacksonJsonToolAdapter.getMapper();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,34 +1,32 @@
|
||||
package com.hccake.ballcat.common.util;
|
||||
|
||||
import com.hccake.ballcat.common.util.json.FastjsonAdapter;
|
||||
import com.hccake.ballcat.common.util.json.GsonAdapter;
|
||||
import com.hccake.ballcat.common.util.json.HuToolJsonAdapter;
|
||||
import com.hccake.ballcat.common.util.json.JacksonAdapter;
|
||||
import com.hccake.ballcat.common.util.json.JsonAdapter;
|
||||
import com.hccake.ballcat.common.util.json.TypeReference;
|
||||
import java.lang.reflect.Type;
|
||||
import com.hccake.ballcat.common.util.json.*;
|
||||
import lombok.Getter;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
/**
|
||||
* @author lingting 2021/2/25 20:38
|
||||
*/
|
||||
public class JsonUtils {
|
||||
|
||||
|
||||
@Getter
|
||||
private static JsonAdapter adapter;
|
||||
private static JsonTool jsonTool;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = JsonUtils.class.getClassLoader();
|
||||
if (ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader)) {
|
||||
adapter = new JacksonAdapter();
|
||||
} else if (ClassUtils.isPresent("com.google.gson.Gson", classLoader)) {
|
||||
adapter = new GsonAdapter();
|
||||
} else if (ClassUtils.isPresent("cn.hutool.json.JSONConfig", classLoader)) {
|
||||
adapter = new HuToolJsonAdapter();
|
||||
} else if (ClassUtils.isPresent("com.alibaba.fastjson.JSON", classLoader)) {
|
||||
adapter = new FastjsonAdapter();
|
||||
jsonTool = new JacksonJsonToolAdapter();
|
||||
}
|
||||
else if (ClassUtils.isPresent("com.google.gson.Gson", classLoader)) {
|
||||
jsonTool = new GsonJsonToolAdapter();
|
||||
}
|
||||
else if (ClassUtils.isPresent("cn.hutool.json.JSONConfig", classLoader)) {
|
||||
jsonTool = new HuToolJsonToolAdapter();
|
||||
}
|
||||
else if (ClassUtils.isPresent("com.alibaba.fastjson.JSON", classLoader)) {
|
||||
jsonTool = new FastjsonJsonToolAdapter();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,29 +35,28 @@ public class JsonUtils {
|
||||
*
|
||||
* @author lingting 2021-02-26 11:18
|
||||
*/
|
||||
public static void switchAdapter(JsonAdapter adapter) {
|
||||
JsonUtils.adapter = adapter;
|
||||
public static void switchAdapter(JsonTool jsonTool) {
|
||||
JsonUtils.jsonTool = jsonTool;
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static String toJson(Object obj) {
|
||||
return adapter.toJson(obj);
|
||||
return jsonTool.toJson(obj);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static <T> T toObj(String json, Class<T> r) {
|
||||
return adapter.toObj(json, r);
|
||||
return jsonTool.toObj(json, r);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static <T> T toObj(String json, Type t) {
|
||||
return adapter.toObj(json, t);
|
||||
return jsonTool.toObj(json, t);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static <T> T toObj(String json, TypeReference<T> t) {
|
||||
return adapter.toObj(json, t);
|
||||
return jsonTool.toObj(json, t);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.util.function.BiConsumer;
|
||||
/**
|
||||
* @author lingting 2021/2/26 10:32
|
||||
*/
|
||||
public class FastjsonAdapter implements JsonAdapter {
|
||||
public class FastjsonJsonToolAdapter implements JsonTool {
|
||||
|
||||
/**
|
||||
* json str -> obj 时
|
||||
@@ -54,11 +54,11 @@ public class FastjsonAdapter implements JsonAdapter {
|
||||
@Override
|
||||
public <T> T toObj(String json, TypeReference<T> t) {
|
||||
/*
|
||||
由于 fastjson 下面这个方法
|
||||
com.alibaba.fastjson.JSON.parseObject(java.lang.String, com.alibaba.fastjson.TypeReference<T>, com.alibaba
|
||||
.fastjson.parser.Feature...)
|
||||
直接调用了 type.type, 而不是使用的 getType()方法. 所以使用 com.debug.json.FastjsonAdapter.toObj(java.lang.String, java.lang
|
||||
.reflect.Type) 方法
|
||||
* 由于 fastjson 下面这个方法 com.alibaba.fastjson.JSON.parseObject(java.lang.String,
|
||||
* com.alibaba.fastjson.TypeReference<T>, com.alibaba .fastjson.parser.Feature...)
|
||||
* 直接调用了 type.type, 而不是使用的 getType()方法. 所以使用
|
||||
* com.debug.json.FastjsonAdapter.toObj(java.lang.String, java.lang .reflect.Type)
|
||||
* 方法
|
||||
*/
|
||||
|
||||
return toObj(json, t.getType());
|
||||
@@ -2,14 +2,15 @@ package com.hccake.ballcat.common.util.json;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.function.Consumer;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author lingting 2021/2/26 10:22
|
||||
*/
|
||||
public class GsonAdapter implements JsonAdapter {
|
||||
public class GsonJsonToolAdapter implements JsonTool {
|
||||
|
||||
@Getter
|
||||
static Gson gson = new GsonBuilder().create();
|
||||
@@ -37,12 +38,12 @@ public class GsonAdapter implements JsonAdapter {
|
||||
|
||||
@Override
|
||||
public <T> T toObj(String json, Class<T> r) {
|
||||
return gson.fromJson(json,r);
|
||||
return gson.fromJson(json, r);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T toObj(String json, Type t) {
|
||||
return gson.fromJson(json,t);
|
||||
return gson.fromJson(json, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2,14 +2,15 @@ package com.hccake.ballcat.common.util.json;
|
||||
|
||||
import cn.hutool.json.JSONConfig;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.function.Consumer;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author lingting 2021/2/26 10:00
|
||||
*/
|
||||
public class HuToolJsonAdapter implements JsonAdapter {
|
||||
public class HuToolJsonToolAdapter implements JsonTool {
|
||||
|
||||
@Getter
|
||||
static JSONConfig jsonConfig = JSONConfig.create();
|
||||
@@ -10,7 +10,7 @@ import lombok.SneakyThrows;
|
||||
/**
|
||||
* @author lingting 2021/2/25 21:04
|
||||
*/
|
||||
public class JacksonAdapter implements JsonAdapter {
|
||||
public class JacksonJsonToolAdapter implements JsonTool {
|
||||
|
||||
@Getter
|
||||
static ObjectMapper mapper = new ObjectMapper();
|
||||
@@ -7,7 +7,7 @@ import java.lang.reflect.Type;
|
||||
*
|
||||
* @author lingting 2021/2/25 20:43
|
||||
*/
|
||||
public interface JsonAdapter {
|
||||
public interface JsonTool {
|
||||
|
||||
/**
|
||||
* obj -> jsonStr
|
||||
Reference in New Issue
Block a user