SpringMVC--配置FastJSON为JSON处理器 偏执的太偏执、 2022-06-08 23:09 231阅读 0赞 springMVC使用fastJson很简单,在springMVC的配置文件中作如下配置: <!-- 启用默认配置 --> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- 配置Fastjson支持 --> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json</value> </list> </property> <property name="features"> <list> <value>WriteMapNullValue</value> <value>QuoteFieldNames</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> 或者通过注解直接注入FastJsonHttpMessageConverter,通过@Bean注入HandlerAdapter来注入FastJsonHttpMessageConverter,有关HttpMessageConverter相关的知识可以参考 [springMVC源码分析--HttpMessageConverter写write操作(三)][springMVC_--HttpMessageConverter_write]和 [springMVC源码分析--HttpMessageConverter参数read操作(二)][springMVC_--HttpMessageConverter_read] @Configuration public class FastJSONMessageConverter { @Bean public HandlerAdapter handlerAdapter(WebBindingInitializer webBindingInitializer){ List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>(); //注入FastJSON FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); List<MediaType> supportedMediaTypes = new ArrayList<MediaType>(); supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED); supportedMediaTypes.add(MediaType.TEXT_HTML); fastJsonHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes ); messageConverters.add(fastJsonHttpMessageConverter); RequestMappingHandlerAdapter requestMappingHandlerAdapter = new RequestMappingHandlerAdapter(); //参数及返回值处理 requestMappingHandlerAdapter.setMessageConverters(messageConverters); //参数校验 requestMappingHandlerAdapter.setWebBindingInitializer(webBindingInitializer); return requestMappingHandlerAdapter; } } Fastjson的SerializerFeature序列化属性: QuoteFieldNames———-输出key时是否使用双引号,默认为true WriteMapNullValue——–是否输出值为null的字段,默认为false WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null WriteNullListAsEmpty—–List字段如果为null,输出为\[\],而非null WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null 别忘了添加Fastjson的包,如果使用Maven,版本可以切换至最新版本,可使用如下设置 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.37</version> </dependency> 示例: @Controller @RequestMapping("/test") public class TestController { @RequestMapping("/json") @ResponseBody public List<String> test(){ List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("sdsd"); list.add("asdads"); return list; } } 浏览器输出: \["1","2","sdsd","asdads"\] [springMVC_--HttpMessageConverter_write]: http://blog.csdn.net/qq924862077/article/details/55271959 [springMVC_--HttpMessageConverter_read]: http://blog.csdn.net/qq924862077/article/details/55271569
还没有评论,来说两句吧...