Jersey'de size gelen bir nesnenin tarih formatı dd.MM.yyyy HH:mm şeklinde veya buna benzer olabilir. Bu şekilde gelen tarih değerini Date tipine otomatik olarak atanmasını isteyebilirsiniz. Örneğin aşağıdaki gibi servis çağırım kodu olsun:
ClientConfig config = new DefaultClientConfig();
config.getClasses().add(MOXyJsonProvider.class);
Client client = Client.create(config);
WebResource service = client.resource(UriBuilder.fromUri(url).build());
MyEntity[] services = service.accept(MediaType.APPLICATION_JSON)
.get(new GenericType<MyEntity[]>() {});
Bu örnekte bir servisten MyEntity dizisi alıyoruz. MyEntity sınıfı aşağıdaki gibi olsun:
import java.io.*;
import java.util.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
public class IadeEntity implements Serializable{
private long id;
@XmlJavaTypeAdapter(DateAdapter.class)
private Date myDate;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Date getMyDate() {
return myDate;
}
public void setMyDate(Date myDate) {
this.myDate = myDate;
}
}
DateAdapter sınıfı da aşağıdaki gibidir:
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class DateAdapter extends XmlAdapter<String, Date> {
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");
@Override
public String marshal(Date date) throws Exception {
return dateFormat.format(date);
}
@Override
public Date unmarshal(String string) throws Exception {
return dateFormat.parse(string);
}
}
Bu şekilde web servis cevabındaki dd.MM.yyyy HH:mm formatındaki tarih, MyEntity sınıfındaki mYDate nesnesine bind edilecektir.