import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.dataformat.xml.PackageVersion;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.IOException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
/**
* json/XML处理类
*/
public final class SerializeUtil {
private SerializeUtil() {
throw new IllegalStateException("Utility class");
}
//region 字符串常量
private static final String TITLE = "SerializeUtil";
//endregion
private static final ObjectMapper JSON_MAPPER = new ObjectMapper();
private static final XmlMapper XML_MAPPER = new XmlMapper();
static {
//忽略字段大小写
XML_MAPPER.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
//忽略字段数量不一致
XML_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//默认json序列化设置
SerializeUtil.initSerializationConfigure(JSON_MAPPER);
}
/**
* 默认json序列化设置
* @param JSON_MAPPER mapper实例
*/
private static void initSerializationConfigure(ObjectMapper JSON_MAPPER) {
//忽略字段大小写
JSON_MAPPER.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
//此配置反序列化的时候如果多了属性, 不抛出异常。不设置这个json字符串只能少属性,不能多属性,否者会抛异常
JSON_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//如果是空对象的时候,不抛异常
JSON_MAPPER.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
//******************************* 处理日期类型序列化和反序列化 *******************************
//取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
JSON_MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
SimpleModule serializerModule = new SimpleModule("CQDateTimeSerializer", PackageVersion.VERSION);
serializerModule.addSerializer(Date.class, new CQDateSe
JAVA工具类之json/XML处理类
于 2024-07-01 20:17:31 首次发布