Nam*_*jug 3 java mysql spring json spring-mvc
在Spring MVC框架中的LocalDateTime(Java 8)格式化中遇到问题
我的VO就像代码一样
在mySQL w_date字段中是DATETIME并重新编码"2015-12-25 23:18:22"
public class HistoryBoard {
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
private LocalDateTime w_date;
public LocalDateTime getW_date() {
return w_date;
}
public HistoryBoard setW_date(String w_date) {
DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
this.w_date = LocalDateTime.parse(w_date, sdf);
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
添加maven依赖
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.5.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
并添加@JsonFormat(pattern="yyyy-MM-dd")字段值w_date
但仍然json得到像对象
"w_date":{"dayOfMonth":25,"dayOfWeek":"FRIDAY","month":"DECEMBER","year":2015,"dayOfYear":359,"monthValue":12,"hour":23,"minute":18,"second":22,"nano":0,"chronology":{"id":"ISO","calendarType":"iso8601"}
Run Code Online (Sandbox Code Playgroud)
json页面控制器代码
@RequestMapping(value = "/listJson.do")
public @ResponseBody Object listJson(Map<String, Object> commandMap, ModelMap model) throws Exception {
List<HistoryBoard> list = boardService.selectBoardList(commandMap);
return list;
}
Run Code Online (Sandbox Code Playgroud)
这里回答了类似的问题.您可能需要添加@JsonSerialize(using = LocalDateTimeSerializer.class)到您的字段中.
您还可以创建如下的自定义序列化程序:
public class CustomLocalDateTimeSerializer extends JsonSerializer<LocalDateTime>{
@Override
public void serialize(LocalDateTime dateTime, JsonGenerator generator, SerializerProvider sp)
throws IOException, JsonProcessingException {
String formattedDateTime = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
generator.writeString( formattedDateTime);
}
}
Run Code Online (Sandbox Code Playgroud)
并在LocalDateTime字段中使用该自定义序列化程序:
@JsonSerialize(using = CustomLocalDateTimeSerializer.class)
private LocalDateTime w_date;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1973 次 |
| 最近记录: |