[springMVC]利用fastjson返回

原因:
1.jackjson无法处理嵌套的entity关系;例:entity:A中包含entity:B,B中又有C;
2.fastjson性能优越;
3.把fastjson用于memached缓存对象数据;

使用方法:

一:配置文件

<!-- 启用注解 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <ref bean="mappingFastJsonHttpMessageConverter"/>
        </mvc:message-converters>
    </mvc:annotation-driven>
<bean id="mappingFastJsonHttpMessageConverter"
          class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
        <property name="fastJsonConfig">
            <bean class="com.alibaba.fastjson.support.config.FastJsonConfig">
                <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/>
                <property name="serializerFeatures">
                    <list>
                       	 <!-- 输出key时是否使用双引号 -->
					     <value>QuoteFieldNames</value>
					     
					     <!-- 是否输出值为null的字段 -->
					     <!-- <value>WriteMapNullValue</value> -->
					     
					     <!-- 数值字段如果为null,输出为0,而非null -->
					     <value>WriteNullNumberAsZero</value>
					     
					     <!-- List字段如果为null,输出为[],而非null -->
					     <value>WriteNullListAsEmpty</value>
					     
					     <!-- 字符类型字段如果为null,输出为"",而非null -->
					     <value>WriteNullStringAsEmpty</value>
					     
					     <!-- Boolean字段如果为null,输出为false,而非null -->
					     <value>WriteNullBooleanAsFalse</value>
					     
					     <!-- null String不输出  -->
					     <value>WriteNullStringAsEmpty</value>
					     
					     <!-- null String也要输出  -->
					     <!-- <value>WriteMapNullValue</value> -->
					
					     <!-- Date的日期转换器,这个只有默认yyyy-MM-dd HH:mm:ss,使用最上的dateFormat即可修改格式 -->
					     <value>WriteDateUseDateFormat</value>
                    </list>
                </property>
            </bean>
        </property>
    </bean>

注:当属性值为空的时候,fastjson默认是不输出的;

代码注释:

@JSONField(name = "operator")
private String operation="test";

@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;

//name:json串:"**operator**:test,createTime:'2019-09-21 15:05:31'"
//ordinal:排序,数字越小越前;
//serialize:若serialize = false,序列化时过滤该字段;
//deserialize:若deserialize = false,反序列化时过滤该字段;

注:fastjson的赋值是用get/set方法,和注解无关;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值