大家都知道Jackson都是老牌的性能强劲的json序列化工具了,SpringMVC也是使用Jackson作为默认的序列化工具。我以前其实并不是使用Jackson而是国货之光–FastJson。本着支持国货,api简单的想法用了很长一段时间的FastJson,奈何国货不争气天天爆出安全漏洞,想着那些天大半夜爬起来升级版本的夜晚感动的流下了不争气的眼泪。。。。。所以没办法,转用稳定异常的Jackson的怀抱。但是Jackson有个不太友好的API使用,反正用起来就是没有FastJson的api调用来的方便,所以有了这篇文章,话不多说直接上代码。
首先祭出工具代码,这个代码时用来判断当前的java版本的。
package com.jackson;
import java.util.HashMap;
import java.util.Map;
public class ClassUtils {
private static final Map<String,Class<?>> commonClassCache = new HashMap<>();
public static boolean isPresent(String className,ClassLoader classLoader) {
try {
if (commonClassCache.containsKey(className))
return true;
Class<?> clazz = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
commonClassCache.put(className,clazz);
return true;
}catch (Throwable ex) {
return false;
}
}
}
然后祭出我们的JavaVersion枚举类,当然还是工具人
package com.jackson;
public enum JavaVersion {
EIGHT(8,"1.8","java.util.function.Function"),
SEVEN(7,"1.7","java.nio.file.Files"),
SIX(6,"1.6","java.util.ServiceLoader");
private final int value;
private final String name;
private final bool