|
@@ -370,6 +370,21 @@ public final class JacksonUtils {
|
|
|
*/
|
|
|
private static BeanSerializerModifier generateNullModifier() {
|
|
|
return new BeanSerializerModifier() {
|
|
|
+ /**
|
|
|
+ * 空字符串序列化处理
|
|
|
+ */
|
|
|
+ private final JsonSerializer<Object> stringSerializer = new JsonSerializer<Object>() {
|
|
|
+ @Override
|
|
|
+ public void serialize(Object value, JsonGenerator generator, SerializerProvider provider)
|
|
|
+ throws IOException {
|
|
|
+ if (value == null) {
|
|
|
+ generator.writeString(StringUtils.EMPTY);
|
|
|
+ } else {
|
|
|
+ generator.writeObject(value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
/**
|
|
|
* 空字典序列化处理器
|
|
|
*/
|
|
@@ -407,7 +422,9 @@ public final class JacksonUtils {
|
|
|
List<BeanPropertyWriter> writers) {
|
|
|
writers.forEach(writer -> {
|
|
|
Class<?> clazz = writer.getType().getRawClass();
|
|
|
- if (Map.class.isAssignableFrom(clazz)) {
|
|
|
+ if (CharSequence.class.isAssignableFrom(clazz)) {
|
|
|
+ writer.assignNullSerializer(this.stringSerializer);
|
|
|
+ } else if (Map.class.isAssignableFrom(clazz)) {
|
|
|
writer.assignNullSerializer(this.mappingSerializer);
|
|
|
} else if (clazz.isArray() || Collection.class.isAssignableFrom(clazz)) {
|
|
|
writer.assignNullSerializer(this.collectionSerializer);
|