如何使用Jersey Mapper将java.util.Date序列化为时间跨度?

时间:2016-01-13 08:31:33

标签: java json jersey

我正在开发一个依赖Jersey servlet的Web服务,并使用Jersey json转换器。

我的PatientDTO有一个字段java.util.Date birthDate

以下是我的方法

@GET
@Path("/{param}")
@Produces(MediaType.APPLICATION_JSON)
public Response getPatient(@PathParam("param") String id) {

    PatientDTO patientDTO;
    PatientManager manager = new PatientManagerFacade();

    patientDTO = manager.getPatientById(id);

    if (patientDTO == null) {
        return Response.status(204).build();
    }

    return Response.status(200).entity(patientDTO).build();
}

@POST
@Path("/add")
@Consumes(MediaType.APPLICATION_JSON)
public Response addPatient(PatientDTO patient) {
    PatientManager manager = new PatientManagerFacade();
    String id = manager.addPatient(patient);
    return Response.status(200).entity(id).build();
}

问题如下

对于我的POST方法,我给出了以下json,它被解析得很好,时间跨度被转换为java.util.Date

{
  "firstName": "John",
  "lastName": "Smith",
  "birthDate": 722725200000,
  "gender": "MALE",
  "age": 18
}

但是当我调用return方法时,它给了我以下json

{
  "id": "NM-001",
  "firstName": "John",
  "lastName": "Smith",
  "birthDate": "1992-11-26",
  "gender": "MALE",
  "age": 23
}

但我希望birthDate也是一个时间跨度。我该如何实现这一目标?任何注释实际上如何解析字段,或类似的东西?

提前致谢

0 个答案:

没有答案