com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter#setFastJsonConfig ( )源码实例Demo

下面列出了com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter#setFastJsonConfig ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Bean
FastJsonHttpMessageConverter getFastJsonConv() {
    FastJsonHttpMessageConverter conv = new FastJsonHttpMessageConverter();

    FastJsonConfig oFastJsonConfig = new FastJsonConfig();
    oFastJsonConfig.setSerializerFeatures(
            SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteDateUseDateFormat
    );
    conv.setFastJsonConfig(oFastJsonConfig);

    List<MediaType> types = new ArrayList<>();
    types.add(MediaType.APPLICATION_JSON_UTF8);
    types.add(MediaType.APPLICATION_JSON);
    conv.setSupportedMediaTypes(types);
    return conv;
}
 
源代码2 项目: yue-library   文件: WebMvcConfig.java
/**
 * <p>使用FastJson优先于默认的Jackson做json解析
 * <p>https://github.com/alibaba/fastjson/wiki/%E5%9C%A8-Spring-%E4%B8%AD%E9%9B%86%E6%88%90-Fastjson
 */
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
	// 1. 确认是否启用FastJsonHttpMessageConverter
	if (!webProperties.isEnabledFastJsonHttpMessageConverter()) {
		return;
	}
	
	// 2. 配置FastJsonHttpMessageConverter
	FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
	FastJsonConfig config = new FastJsonConfig();
	config.setDateFormat(JSON.DEFFAULT_DATE_FORMAT);
	config.setSerializerFeatures(
			SerializerFeature.PrettyFormat, 
			SerializerFeature.BrowserCompatible, 
			SerializerFeature.WriteMapNullValue, 
			SerializerFeature.WriteNullBooleanAsFalse,
			SerializerFeature.WriteNullListAsEmpty, 
			SerializerFeature.WriteNullNumberAsZero,
			SerializerFeature.WriteNullStringAsEmpty
	);
	converter.setFastJsonConfig(config);
	converters.add(0, converter);
	
	log.info("【初始化配置-FastJsonHttpMessageConverter】默认配置为false,当前环境为true:使用FastJson优先于默认的Jackson做json解析 ... 已初始化完毕。");
}
 
@Bean
    public HttpMessageConverters fastJsonConfigure(){
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        //日期格式化
        fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
        //修改配置返回内容的过滤
        fastJsonConfig.setSerializerFeatures(
//                SerializerFeature. WriteMapNullValue,//是否输出值为null的字段,默认为false
                SerializerFeature.WriteDateUseDateFormat//格式化标签
//        		SerializerFeature.WriteNullListAsEmpty  ,//List字段如果为null,输出为[],而非null
//                SerializerFeature.DisableCircularReferenceDetect,//消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环)
//                SerializerFeature.WriteMapNullValue,//是否输出值为null的字段,默认为false。
//                SerializerFeature.WriteNullStringAsEmpty//字符类型字段如果为null,输出为"",而非null
//                SerializerFeature.WriteNullBooleanAsFalse//Boolean字段如果为null,输出为false,而非null
        );
        converter.setFastJsonConfig(fastJsonConfig);
        //处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        converter.setSupportedMediaTypes(fastMediaTypes);
        converter.setFastJsonConfig(fastJsonConfig);
        //将fastjson添加到视图消息转换器列表内
        return new HttpMessageConverters(converter);
    }
 
@Bean
public HttpMessageConverters fastJsonConfigure(){
    FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    //日期格式化
    fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
    //修改配置返回内容的过滤
    fastJsonConfig.setSerializerFeatures(
            SerializerFeature. WriteMapNullValue,//是否输出值为null的字段,默认为false
            SerializerFeature.WriteDateUseDateFormat,//格式化标签
    		SerializerFeature.WriteNullListAsEmpty , //List字段如果为null,输出为[],而非null
            SerializerFeature.DisableCircularReferenceDetect,//消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环)
            SerializerFeature.WriteMapNullValue,//是否输出值为null的字段,默认为false。
            SerializerFeature.WriteNullStringAsEmpty,//字符类型字段如果为null,输出为"",而非null
            SerializerFeature.WriteNullBooleanAsFalse//Boolean字段如果为null,输出为false,而非null
    );
    converter.setFastJsonConfig(fastJsonConfig);
    //处理中文乱码问题
    List<MediaType> fastMediaTypes = new ArrayList<>();
    fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    converter.setSupportedMediaTypes(fastMediaTypes);
    converter.setFastJsonConfig(fastJsonConfig);
    //将fastjson添加到视图消息转换器列表内
    return new HttpMessageConverters(converter);
}
 
源代码5 项目: seed   文件: FastjsonConfiguration.java
@Bean
public HttpMessageConverters fastjsonConverter(){
    List<SerializerFeature> serializerFeatureList = new ArrayList<>();
    serializerFeatureList.add(SerializerFeature.PrettyFormat);
    serializerFeatureList.add(SerializerFeature.QuoteFieldNames);
    serializerFeatureList.add(SerializerFeature.WriteMapNullValue);
    serializerFeatureList.add(SerializerFeature.WriteNullListAsEmpty);
    serializerFeatureList.add(SerializerFeature.WriteNullNumberAsZero);
    serializerFeatureList.add(SerializerFeature.WriteNullStringAsEmpty);
    serializerFeatureList.add(SerializerFeature.WriteNullBooleanAsFalse);
    serializerFeatureList.add(SerializerFeature.WriteDateUseDateFormat);
    SerializerFeature[] serializerFeatures = new SerializerFeature[serializerFeatureList.size()];
    serializerFeatureList.toArray(serializerFeatures);
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setCharset(StandardCharsets.UTF_8);
    fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
    fastJsonConfig.setSerializerFeatures(serializerFeatures);
    FastJsonHttpMessageConverter fastjson = new FastJsonHttpMessageConverter();
    fastjson.setFastJsonConfig(fastJsonConfig);
    return new HttpMessageConverters(fastjson);
}
 
源代码6 项目: xmfcn-spring-cloud   文件: BeanConfig.java
/**
 * 替换springMVC JSON格式化工具为FastJSON,同时支持输出value=null的字段
 *
 * @return http message converters
 */
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    //1.需要定义一个convert转换消息的对象;
    FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
    //2:添加fastJson的配置信息;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
    fastJsonConfig.setSerializeFilters();
    //3处理中文乱码问题
    List<MediaType> fastMediaTypes = new ArrayList<>();
    fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    //4.在convert中添加配置信息.
    fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
    fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
    return new HttpMessageConverters(fastJsonHttpMessageConverter);

}
 
源代码7 项目: spring-boot-cookbook   文件: WebMvcConfig.java
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    FastJsonHttpMessageConverter httpMessageConverter = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.QuoteFieldNames,
            SerializerFeature.WriteEnumUsingToString,
            SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteDateUseDateFormat);
    fastJsonConfig.setSerializeFilters(new ValueFilter() {
        @Override
        public Object process(Object o, String s, Object source) {
            if (source == null) {
                return "";
            }
            if (source instanceof Date) {
                return ((Date) source).getTime();
            }
            return source;
        }
    });
    httpMessageConverter.setFastJsonConfig(fastJsonConfig);
    converters.add(httpMessageConverter);
}
 
源代码8 项目: littleca   文件: WebMvcConfig.java
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    //1.需要定义一个convert转换消息的对象;
    FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
    //2.添加fastJson的配置信息,比如:是否要格式化返回的json数据;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    //3处理中文乱码问题
    List<MediaType> fastMediaTypes = new ArrayList<>();
    fastMediaTypes.add(MediaType.APPLICATION_JSON);
    fastJsonConfig.setCharset(Charset.forName("UTF-8"));
    //4.在convert中添加配置信息.
    fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
    fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
    //5.将convert添加到converters当中.
    converters.add(1, fastJsonHttpMessageConverter);
}
 
源代码9 项目: xmfcn-spring-cloud   文件: HttpBasicAuthConfig.java
/**
 * 替换springMVC JSON格式化工具为FastJSON,同时支持输出value=null的字段
 *
 * @return http message converters
 */
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters(){
    //1.需要定义一个convert转换消息的对象;
    FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
    //2:添加fastJson的配置信息;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
    fastJsonConfig.setSerializeFilters();
    //3处理中文乱码问题
    List<MediaType> fastMediaTypes = new ArrayList<>();
    fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    //4.在convert中添加配置信息.
    fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
    fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
    return new HttpMessageConverters((HttpMessageConverter<?>) fastJsonHttpMessageConverter);

}
 
源代码10 项目: AthenaServing   文件: Application.java
/**
 * fastjson 转换器
 *
 * @param converters
 */
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
	super.configureMessageConverters(converters);
	FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
	FastJsonConfig fastJsonConfig = new FastJsonConfig();
	fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
	List<MediaType> fastMediaTypes = new ArrayList<>();
	fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
	fastConverter.setSupportedMediaTypes(fastMediaTypes);
	fastConverter.setFastJsonConfig(fastJsonConfig);
	converters.add(fastConverter);
}
 
源代码11 项目: logistics-back   文件: LogisticsApplication.java
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
	// 1.需要定义一个Convert转换消息的对象
	FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
	// 2.添加fastjson的配置信息,比如是否要格式化返回的json数据
	FastJsonConfig fastJsonConfig = new FastJsonConfig();
	fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
	// 3.在convert中添加配置信息
	fastConverter.setFastJsonConfig(fastJsonConfig);

	HttpMessageConverter<?> converter = fastConverter;
	return new HttpMessageConverters(converter);
}
 
源代码12 项目: MeetingFilm   文件: DefaultFastjsonConfig.java
@Bean
public FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {
    FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
    converter.setFastJsonConfig(fastjsonConfig());
    converter.setSupportedMediaTypes(getSupportedMediaType());
    return converter;
}
 
源代码13 项目: flower   文件: FastJsonConfiguration.java
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  FastJsonConfig fastJsonConfig = new FastJsonConfig();
  fastJsonConfig.setSerializerFeatures(
      SerializerFeature.DisableCircularReferenceDetect, // SerializerFeature.WriteMapNullValue,
      SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty,
      SerializerFeature.WriteNullBooleanAsFalse, SerializerFeature.PrettyFormat);
  fastJsonConfig.setCharset(Charset.forName("UTF-8"));
  fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");

  FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
  converter.setFastJsonConfig(fastJsonConfig);
  converters.add(0, converter);
}
 
源代码14 项目: bookmark   文件: Application.java
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    // 1.定义一个converters转换消息的对象
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    // 2.添加fastjson的配置信息,比如: 是否需要格式化返回的json数据
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect);
    // 3.在converter中添加配置信息
    fastConverter.setFastJsonConfig(fastJsonConfig);
    // 5.返回HttpMessageConverters对象
    return new HttpMessageConverters(fastConverter);
}
 
源代码15 项目: framework   文件: MessageConfig.java
/**
 * 
 * Description: <br> 
 *  
 * @author 王伟<br>
 * @taskId <br>
 * @return <br>
 */
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    // 1、需要先定义一个 convert 转换消息对象;
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setFeatures(Feature.AllowISO8601DateFormat);
    fastConverter.setFastJsonConfig(fastJsonConfig);

    return new HttpMessageConverters(new StringHttpMessageConverter(), fastConverter);
}
 
源代码16 项目: spring-boot-vue-admin   文件: WebMvcConfig.java
/** 使用阿里 FastJson 作为 JSON MessageConverter */
@Override
public void configureMessageConverters(final List<HttpMessageConverter<?>> converters) {
  final FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
  final FastJsonConfig config = new FastJsonConfig();
  converter.setSupportedMediaTypes(
      new ArrayList<MediaType>() {
        private static final long serialVersionUID = 1924772982095119650L;

        {
          this.add(MediaType.APPLICATION_JSON_UTF8);
          this.add(MediaType.APPLICATION_OCTET_STREAM);
          this.add(MediaType.IMAGE_GIF);
          this.add(MediaType.IMAGE_JPEG);
          this.add(MediaType.IMAGE_PNG);
        }
      });
  config.setSerializerFeatures(
      // 保留空的字段
      // SerializerFeature.WriteMapNullValue,
      // Number null -> 0
      SerializerFeature.WriteNullNumberAsZero,
      // 美化输出
      SerializerFeature.PrettyFormat);
  converter.setFastJsonConfig(config);
  converter.setDefaultCharset(StandardCharsets.UTF_8);
  converters.add(converter);
}
 
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    //使用阿里 FastJson 作为JSON MessageConverter
    FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
    FastJsonConfig config = new FastJsonConfig();
    //保留空的字段
    config.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
    // 按需配置,更多参考FastJson文档
    converter.setFastJsonConfig(config);
    converter.setDefaultCharset(Charset.forName("UTF-8"));
    converters.add(converter);
}
 
源代码18 项目: sanshanblog   文件: WebConfig.java
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
    FastJsonConfig config = new FastJsonConfig();
    config.setDateFormat("yyyy-MM-dd HH:mm:ss");
    fastJsonHttpMessageConverter.setFastJsonConfig(config);
    converters.add(fastJsonHttpMessageConverter);
    converters.add(resourceHttpMessageConverter);
    super.configureMessageConverters(converters);
}
 
@Bean
public HttpMessageConverters fastJsonConfigure() {
    FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    converter.setFastJsonConfig(fastJsonConfig);

    List<MediaType> supportedMediaTypes = new ArrayList<>();

    supportedMediaTypes.add(MediaType.APPLICATION_JSON);
    supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
    supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
    supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
    supportedMediaTypes.add(MediaType.APPLICATION_PDF);
    supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
    supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
    supportedMediaTypes.add(MediaType.APPLICATION_XML);
    supportedMediaTypes.add(MediaType.IMAGE_GIF);
    supportedMediaTypes.add(MediaType.IMAGE_JPEG);
    supportedMediaTypes.add(MediaType.IMAGE_PNG);
    supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
    supportedMediaTypes.add(MediaType.TEXT_HTML);
    supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
    supportedMediaTypes.add(MediaType.TEXT_PLAIN);
    supportedMediaTypes.add(MediaType.TEXT_XML);
    converter.setSupportedMediaTypes(supportedMediaTypes);
    return new HttpMessageConverters(converter);
}
 
源代码20 项目: seed   文件: FastjsonConfiguration.java
@Bean
public HttpMessageConverters fastjsonConverter(){
    List<SerializerFeature> serializerFeatureList = new ArrayList<>();
    //格式化输出(默认只会输出成一行的字符串)
    serializerFeatureList.add(SerializerFeature.PrettyFormat);
    //输出key时是否使用双引号,默认为true
    serializerFeatureList.add(SerializerFeature.QuoteFieldNames);
    //是否输出值为null的字段,默认为true
    serializerFeatureList.add(SerializerFeature.WriteMapNullValue);
    //List字段如果为null,输出为[],而非null
    serializerFeatureList.add(SerializerFeature.WriteNullListAsEmpty);
    //数值字段如果为null,输出为0,而非null
    serializerFeatureList.add(SerializerFeature.WriteNullNumberAsZero);
    //字符类型字段如果为null,输出为"",而非null
    serializerFeatureList.add(SerializerFeature.WriteNullStringAsEmpty);
    //Boolean字段如果为null,输出为false,而非null
    serializerFeatureList.add(SerializerFeature.WriteNullBooleanAsFalse);
    //使用默认的日期格式[yyyy-MM-dd HH:mm:ss]输出Date类型,未指定该属性则会将java.util.Date类型输出为1484030642746
    serializerFeatureList.add(SerializerFeature.WriteDateUseDateFormat);
    ////测试发现,无论是否设置该属性,都会输出:["age":0]、["age":123.456]
    //serializerFeatureList.add(SerializerFeature.WriteBigDecimalAsPlain);
    ////设置该属性会使得在输出时以字符串来输出非字符串的值,比如["age":"0"]、["abc":"false"],但是List不是这样,还是会输出["goodsList":[]]
    //serializerFeatureList.add(SerializerFeature.WriteNonStringValueAsString);
    ////假设序列化的实体类为com.jadyer.demo.open.model.ReqData,设置该属性会使得输出的json中增加一个key=["@type":"com.jadyer.demo.open.model.ReqData",]
    //serializerFeatureList.add(SerializerFeature.WriteClassName);
    ////设置该属性会使得序列化时增加特殊处理字符处理,比如原本的["mytime":"2017-01-10 14:56:41",]会输出为["mytime":"2017\u002D01\u002D10\u002014\u003A56\u003A41",]
    //serializerFeatureList.add(SerializerFeature.BrowserSecure);
    SerializerFeature[] serializerFeatures = new SerializerFeature[serializerFeatureList.size()];
    serializerFeatureList.toArray(serializerFeatures);

    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    //Fastjson默认就是UTF-8
    fastJsonConfig.setCharset(StandardCharsets.UTF_8);
    //Fastjson默认就是[yyyy-MM-dd HH:mm:ss]
    fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
    //设置序列化输出时的一些额外属性
    fastJsonConfig.setSerializerFeatures(serializerFeatures);

    FastJsonHttpMessageConverter fastjson = new FastJsonHttpMessageConverter();
    fastjson.setFastJsonConfig(fastJsonConfig);
    return new HttpMessageConverters(fastjson);
}