springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式
2018-09-25 17:55
1316 查看
JsonDeserialize:
1、请求接收的是一个json,并且由对象接收
@RequestMapping(value = "/query", method = {RequestMethod.POST},consumes = "application/json") public WebDataListResponse query(@RequestBody(required = true) DataLogQuryEntity dataLogQuryEntity){
2、对象属性的set方法编写注解
DataLogQuryEntity对象中需要接受Date类型的对象:
public class DataLogQuryEntity { @JsonDeserialize(using = DateJsonDeserializer.class) public void setStartTime(Date startTime) { this.startTime = startTime; } }
注lombok的注意一定要写在setter方法上
3、自定义实现
import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import org.apache.commons.lang3.StringUtils; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class DateJsonDeserializer extends JsonDeserializer<Date> { public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public Date deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException, JsonProcessingException { try { if (jsonParser != null && StringUtils.isNotEmpty(jsonParser.getText())) { return format.parse(jsonParser.getText()); } else { return null; } } catch (Exception e) { System.out.println(e.getMessage()); throw new RuntimeException(e); } } }
JsonSerialize用法:
1、对象的get方法应用注解
@JsonSerialize(using = CustomDateSerializer.class) public LocalDateTime getUpdateTime() { return updateTime; }
2、自定义实现
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.time.LocalDateTime; public class CustomDateSerializer extends JsonSerializer<LocalDateTime> { @Override public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { gen.writeString(value.toString()); } }
相关文章推荐
- spring boot 使用fastjson 处理json数据中文乱码 默认使用 ISO-8859-1编码格式
- SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
- 关于SpringBoot自定义注解(解决post接收String参数 null(前台传递json格式))
- json-lib date对象转json ,加入自定义日期格式处理
- spring boot @ResponseBody转换JSON 时 Date 类型处理方法【两种方法】
- @requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题
- SpringMVC使用@ResponseBody时返回json的日期格式处理为指定格式
- SpringMVC @RequestBody接收json字符串,自动将日期字符串转换为java.util.Date
- Springboot @RequestBody + Retrofit @Body 之实体类字段含有日期Date类型的提交方式
- SpringMVC @RequestBody接收Json对象字符串 @ResponseBody处理json数据类型
- Oracle to_date的使用方法 日期格式参数 含义说明 Oracle to_date的使用方法
- 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案
- @requestBody:Spring MVC对Json字符串参数的处理(坑)
- SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意
- JSONArray.fromObject()注入处理日期Date格式
- 使用Spring MVC 的 @RequestBody 映射json请求参数时报异常问题
- [转]SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意
- JQuery返回Json日期格式的問題 jquery对时间/Date(1387900800000)进行处理
- 处理Json数据中的日期类型.如/Date(1415169703000)/格式
- 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案