问题:
1、响应页面时间戳为秒
2、序列化类的字段为null 不响应到页面
3、项目所有类中只要出现为null的指定都不返还到页面
4、指定字段名称效应转换
解决:
1、自定义转换类继承JsonSeralizer<T>,泛型中编写需要转换字段的类型,示例代码
/**
* @author vander
* @Description: 指定字段时间格式转换
* @Date: Create in 2017/10/25 22:11
*/
public class DateToLongSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
//转换为秒
jsonGenerator.writeNumber(date.getTime()/1000);
}
}
再在指定字段上使用@JsonSerialize注解指明,使用该转换器
扫描二维码关注公众号,回复:
4517649 查看本文章
/** 更新时间. */
@JsonSerialize(using = DateToLongSerializer.class)
private Date updateTime;
2、在指定类上添加注解@JsonInclude ## 版本2.0后
@JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO {
...
}
3、在spring配置文件中添加属性
以springboot构建的项目为例,添加如下属性
spring.jackson.default-propertty-inclusion=non_null
4、使用@JsonProperty注解
如下示例代码,页面Ajax请求,后端效应该对象该字段的名称将为orderDetailList
@JsonProperty("orderDetailList")
private List<OrderDetail> orderDetails;