VO包下的类看似和entity包下的数据差不多,实则确实差不多,但entity中是所有的信息,而VO下的是我们想让别人看到的前端信息。使用Json的格式来设置VO包下的数据。
@Data
public class ResultVo<T> {
/** 错误码 */
private Integer code;
/** 提示信息 */
private String msg;
/** 具体内容 */
private T data;
}
data中的具体内容由API文档决定,嵌套下去
@Data
public class ProductVo {
@JsonProperty("name")
private String categoryName;
@JsonProperty("type")
private Integer categoryType;
@JsonProperty("foods")
private List<ProductInfoVo> productInfoVoList;
}
如果需要,在productInfoVoList中可以继续嵌套
@Data
public class ProductInfoVo {
@JsonProperty("id")
private String productId;
@JsonProperty("name")
private String productName;
@JsonProperty("price")
private BigDecimal productPrice;
@JsonProperty("description")
private String productDescription;
@JsonProperty("icon")
private String productIcon;
}
其中@JsonProperty注解中的值是在返回Json数据时显示的key,如果不设置,则会显示变量名,如果按API文档一样的设置很多name可读性会变差,所以使用@JsonProperty注解,使代码可读性与Json数据的格式化兼顾。