我试图将json数据发布到Java中的Controller。
这是我的控制者:
@ResponseBody
@RequestMapping(value="/{schoolId}", method=RequestMethod.POST)
public ClassGroupDTO addClassGroup(@RequestBody ClassGroupDTO classgroup, @PathVariable Integer schoolId) {
return partyService.addClassGroup(classgroup, schoolId);
}
这是ClassGroupDTO
public class ClassGroupDTO extends PartyDTO {
private PartyDTO titular;
private SiteDTO site;
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate startDate;
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate endDate;
...
}
我使用的是Jackson 2.4.3。
当给出字段startDate或endDate时,我无法发布数据。 我尝试了几种格式发布。 (我使用的是moment.js)
data.startDate = moment().toDate();
data.startDate = moment().toJSON();
data.startDate = moment().format("YYYY/MM/DD");
每次收到错误请求错误。 当我省略startDate或endDate时,会发布数据并触发控制器。
如何将javascript日期反序列化为java.time.LocalDate?
答案 0 :(得分:5)
我遇到了同样的问题,使用以下方法解决了问题:
var dateString = new Date().toISOString().substring(0,10);
或
var dateString = new Date().toISOString().split("T")[0];
转换为ISO字符串(“2015-10-14T09:39:49.942Z”),然后只保留前十个字符,即日期。
答案 1 :(得分:0)
由于您正在使用力矩,因此有一种简单的方法可以实现:
let startDate = moment().toISOString();
这将转换为有效的LocalDateTime格式