springMVC返回对象的时候,其实是把对象转化为json,依靠的是spring-mvc.xml
<bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean>来控制,你进入FastJsonHttpMessageConverter类的时候会看到一个参数features,这个参数是需要用到fastjson的SerializerFeature序列化属性。
Fastjson的SerializerFeature序列化属性
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
所以 spring-mvc.xml要改成
<bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>${web.content.html.type}</value> <value>${web.content.text.type}</value> <value>${web.content.json.type}</value> </list> </property> <property name="features"> <array> <value>WriteMapNullValue</value> <value>QuoteFieldNames</value> </array> </property> </bean>