|
|
@@ -73,6 +73,16 @@ public class JacksonConfig {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理Boolean为null,序列化为false
|
|
|
+ */
|
|
|
+ public class MyNullBooleanJsonSerializer extends JsonSerializer {
|
|
|
+ @Override
|
|
|
+ public void serialize(Object value, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException, JsonProcessingException {
|
|
|
+ jsonGenerator.writeBoolean(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @author skyline
|
|
|
* @description 解决后端long类型返回前端精度丢失问题(前端number类型支持17为,本项目id为long19为,最后两位会变成00)
|
|
|
@@ -105,6 +115,8 @@ public class JacksonConfig {
|
|
|
*/
|
|
|
private JsonSerializer nullNumberJsonSerializer = new MyNullNumberJsonSerializer();
|
|
|
|
|
|
+ private JsonSerializer nullBooleanJsonSerializer = new MyNullBooleanJsonSerializer();
|
|
|
+
|
|
|
private JsonSerializer longSerializer = new JsonLongSerializer();
|
|
|
|
|
|
|
|
|
@@ -127,6 +139,8 @@ public class JacksonConfig {
|
|
|
if(isLongType(writer)){
|
|
|
writer.assignSerializer(this.longSerializer);
|
|
|
}
|
|
|
+ } else if (isBooleanType(writer)) {
|
|
|
+ writer.assignNullSerializer(this.nullBooleanJsonSerializer);
|
|
|
} else {
|
|
|
writer.assignNullSerializer(this.nullJsonSerializer);
|
|
|
}
|
|
|
@@ -156,6 +170,14 @@ public class JacksonConfig {
|
|
|
return clazz.equals(Integer.class) || clazz.equals(Long.class);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 判断是boolean类型
|
|
|
+ */
|
|
|
+ protected boolean isBooleanType(BeanPropertyWriter writer) {
|
|
|
+ Class clazz = writer.getPropertyType();
|
|
|
+ return clazz.equals(Boolean.class) || clazz.equals(boolean.class);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 判断是long类型
|
|
|
*
|