import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.PropertyPreFilter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import springfox.documentation.spring.web.json.Json;
import java.util.Collections;
import java.util.Objects;
//@Configuration
public class SerializerConvertConfig {
@Bean
public FastJsonHttpMessageConverter fastjsonConverter() {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(new SerializerFeature[]
{ SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteNullNumberAsZero,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteNullBooleanAsFalse,
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.BrowserCompatible,
SerializerFeature.DisableCircularReferenceDetect});
PropertyPreFilter propertyPreFilter = (w, s, n) -> {
if (s instanceof Json) {
Json j = (Json) s;
final String value = j.value();
final JSONObject jsonObject = JSON.parseObject(value);
w.write(jsonObject.get(jsonObject));
}
return true;
};
ValueFilter valueFilter = (o, s, o1) -> {
if (Objects.isNull(o1)) {
/* if(s.equals("updateTime")||s.equals("createTime") )
{
}*/
return "";
} else if (o1 instanceof Long) {
return o1.toString();
}
else {
return o1;
}
};
fastJsonConfig.setSerializeFilters(valueFilter,propertyPreFilter);
converter.setFastJsonConfig(fastJsonConfig);
converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON));
return converter;
}
}
基于FastJsonHttpMessageConverter
最新推荐文章于 2024-04-21 08:00:00 发布