因为fastjson问题,暂时不使用。
引用
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version></dependency>
JsonUtil
import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.reflect.TypeToken;import java.util.List;import java.util.Map;/*** json工具类* https://www.yuque.com/tianyunperfect/ygzsw4/bv1mlg* <p>* JsonUtil.getObject(str,JsonHello.class)** @author tianyunperfect* @date 2020/05/20*/public class JsonUtil {private static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();public JsonUtil() {}/*** 转换为json字符串** @param object 对象* @return {@link String}*/public static String toJsonStr(Object object) {return gson.toJson(object);}/*** 将json字符串 转换为 普通类** @param jsonStr json str* @param clazz clazz* @return {@link T}*/public static <T> T getObject(String jsonStr, Class<T> clazz) {return gson.fromJson(jsonStr, clazz);}/*** 支持泛型等复杂类型* new TypeToken<Result<List<Integer>>>(){}* new TypeToken<List<Map<String, T>>>() {}** @param jsonString json字符串* @param typeToken 令牌类型* @return {@link T}*/public static <T> T getObject(String jsonString, TypeToken typeToken) {return gson.fromJson(jsonString, typeToken.getType());}/*** 转为数组** @param jsonString* @param tClass* @param <T>* @return*/public static <T> T[] getArray(String jsonString, Class<T> tClass) {return gson.fromJson(jsonString, TypeToken.getArray(tClass).getType());}/*** 转为list** @param jsonString* @param tClass* @param <T>* @return*/public static <T> List<T> getList(String jsonString, Class<T> tClass) {return gson.fromJson(jsonString, new TypeToken<List<T>>() {}.getType());}/*** json字符串转成map的** @param gsonString* @return*/public static <T> Map<String, T> getMap(String gsonString) {return gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {}.getType());}}
注意事项
- 不要有内部类,因为根据字节码无法反解析
