1、 经常一个Java对象有n多个字段,查询数据返回到前端的时候只有一部分属性有数据,另一部分属性值为null ,如果全部返回,第一是暴露了信息,二是加大了网络的数据传输。如果说将属性值为null的字段不返回到前端,那就很nice,每次查询不同数据时都可以使用同一个VO对象。
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version> </dependency>
在VO类的上加上注解即可
import com.fasterxml.jackson.annotation.JsonInclude; @JsonInclude(JsonInclude.Include.NON_NULL)
EG: 如果对象中给goodsId/goodsName设置了值,SpringMVC返回该json数据,数据应是{'goodsId':'10010','goodsName':'牙刷'} , 其他为空的字段不会出现在json数据中。
import com.fasterxml.jackson.annotation.JsonInclude; @JsonInclude(JsonInclude.Include.NON_NULL) public class Goods { private String goodsId; private String goodsName; private String goodsImgUrl; private String goodsDetailUrl; private String goodsPrice; private Integer saleNum; private String expensesPercent; private String expenses; private String sellerName; private String sellerId; private String shopName; private String platformType; private Integer viewNum; private Date createTime; …… …… }
2、SpringMVC中以is开头的字段名返回JSON问题
@JsonProperty(value = "isIndeterminate")注解
@JsonProperty(value = "isIndeterminate")
private boolean isIndeterminate ;
不加@JsonProperty注解, 在返回json数据时,会将前面的is去掉了