update
This commit is contained in:
@@ -83,46 +83,15 @@ public class JsonMapper extends ObjectMapper {
|
|||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private static final String[] pattern = new String[] {"yyyy", "MM", "dd", "HH", "mm", "ss", "SSS"};
|
private static final String[] pattern = new String[] {"yyyy", "MM", "dd", "HH", "mm", "ss", "SSS"};
|
||||||
private static class JeeSiteJsonSerializer extends JsonSerializer<Date> {
|
|
||||||
private final String pattern;
|
|
||||||
private JeeSiteJsonSerializer(String pattern) {
|
|
||||||
this.pattern = pattern;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void serialize(Date value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
|
||||||
if (value != null){
|
|
||||||
if (StringUtils.isNotBlank(pattern)) {
|
|
||||||
gen.writeString(DateUtils.formatDate(value, pattern));
|
|
||||||
} else {
|
|
||||||
gen.writeString(DateUtils.formatDateTime(value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private static class JeeSiteJsonDeserializer extends JsonDeserializer<Date> {
|
|
||||||
private final String pattern;
|
|
||||||
private JeeSiteJsonDeserializer(String pattern) {
|
|
||||||
this.pattern = pattern;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public Date deserialize(JsonParser parser, DeserializationContext context) throws IOException {
|
|
||||||
if (StringUtils.isNotBlank(pattern)) {
|
|
||||||
return DateUtils.parseDate(parser.getText(), pattern);
|
|
||||||
} else {
|
|
||||||
return DateUtils.parseDate(parser.getText());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
public Object findSerializer(Annotated a) {
|
public Object findSerializer(Annotated a) {
|
||||||
if (a instanceof AnnotatedMethod) {
|
if (a instanceof AnnotatedMethod) {
|
||||||
AnnotatedElement m = a.getAnnotated();
|
|
||||||
JsonFormat jf = m.getAnnotation(JsonFormat.class);
|
|
||||||
if (jf != null && StringUtils.containsAnyIgnoreCase(jf.pattern(), pattern)) {
|
|
||||||
return new JeeSiteJsonSerializer(jf.pattern());
|
|
||||||
}
|
|
||||||
AnnotatedMethod am = (AnnotatedMethod) a;
|
AnnotatedMethod am = (AnnotatedMethod) a;
|
||||||
if (am.getRawReturnType() == Date.class) {
|
if (am.getRawReturnType() == Date.class) {
|
||||||
|
JsonFormat jf = am.getAnnotation(JsonFormat.class);
|
||||||
|
if (jf != null && StringUtils.containsAnyIgnoreCase(jf.pattern(), pattern)) {
|
||||||
|
return new JeeSiteJsonSerializer(jf.pattern());
|
||||||
|
}
|
||||||
return new JeeSiteJsonSerializer(null);
|
return new JeeSiteJsonSerializer(null);
|
||||||
}
|
}
|
||||||
} else if (a instanceof AnnotatedClass) {
|
} else if (a instanceof AnnotatedClass) {
|
||||||
@@ -135,13 +104,13 @@ public class JsonMapper extends ObjectMapper {
|
|||||||
@Override
|
@Override
|
||||||
public Object findDeserializer(Annotated a) {
|
public Object findDeserializer(Annotated a) {
|
||||||
if (a instanceof AnnotatedMethod) {
|
if (a instanceof AnnotatedMethod) {
|
||||||
AnnotatedElement m = a.getAnnotated();
|
|
||||||
JsonFormat jf = m.getAnnotation(JsonFormat.class);
|
|
||||||
if (jf != null && StringUtils.containsAnyIgnoreCase(jf.pattern(), pattern)) {
|
|
||||||
return new JeeSiteJsonDeserializer(jf.pattern());
|
|
||||||
}
|
|
||||||
AnnotatedMethod am = (AnnotatedMethod) a;
|
AnnotatedMethod am = (AnnotatedMethod) a;
|
||||||
if (am.getParameterCount() > 0 && am.getParameterType(0).getRawClass() == Date.class) {
|
if (am.getParameterCount() > 0 && am.getParameterType(0).getRawClass() == Date.class) {
|
||||||
|
AnnotatedElement m = am.getAnnotated();
|
||||||
|
JsonFormat jf = m.getAnnotation(JsonFormat.class);
|
||||||
|
if (jf != null && StringUtils.containsAnyIgnoreCase(jf.pattern(), pattern)) {
|
||||||
|
return new JeeSiteJsonDeserializer(jf.pattern());
|
||||||
|
}
|
||||||
return new JeeSiteJsonDeserializer(null);
|
return new JeeSiteJsonDeserializer(null);
|
||||||
}
|
}
|
||||||
} else if (a instanceof AnnotatedClass) {
|
} else if (a instanceof AnnotatedClass) {
|
||||||
@@ -155,6 +124,38 @@ public class JsonMapper extends ObjectMapper {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final class JeeSiteJsonSerializer extends JsonSerializer<Date> {
|
||||||
|
private final String pattern;
|
||||||
|
public JeeSiteJsonSerializer(String pattern) {
|
||||||
|
this.pattern = pattern;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void serialize(Date value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
||||||
|
if (value != null){
|
||||||
|
if (StringUtils.isNotBlank(pattern)) {
|
||||||
|
gen.writeString(DateUtils.formatDate(value, pattern));
|
||||||
|
} else {
|
||||||
|
gen.writeString(DateUtils.formatDateTime(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class JeeSiteJsonDeserializer extends JsonDeserializer<Date> {
|
||||||
|
private final String pattern;
|
||||||
|
public JeeSiteJsonDeserializer(String pattern) {
|
||||||
|
this.pattern = pattern;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public Date deserialize(JsonParser parser, DeserializationContext context) throws IOException {
|
||||||
|
if (StringUtils.isNotBlank(pattern)) {
|
||||||
|
return DateUtils.parseDate(parser.getText(), pattern);
|
||||||
|
} else {
|
||||||
|
return DateUtils.parseDate(parser.getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启将空值转换为空字符串
|
* 开启将空值转换为空字符串
|
||||||
* @author ThinkGem
|
* @author ThinkGem
|
||||||
|
|||||||
Reference in New Issue
Block a user