Jackson là thư viện dựa trên Java, hữu ích để chuyển đổi đối tượng Java sang JSON và JSON sang đối tượng Java. Jackson API nhanh hơn các API khác, cần ít bộ nhớ hơn và tốt cho các đối tượng lớn. Chúng ta có thể định dạng ngày tháng sử dụng phương thức setDateFormat() của lớp ObjectMapper. Phương thức này dùng để cấu hình DateFormat mặc định khi serialize giá trị thời gian thành chuỗi và deserialize từ chuỗi JSON.
Cú pháp
public ObjectMapper setDateFormat(DateFormat dateFormat)
Ví dụ minh họa
import java.io.*;
import java.text.*;
import java.util.*;
import com.fasterxml.jackson.databind.*;
public class JacksonDateformatTest {
final static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws Exception {
JacksonDateformatTest jacksonDateformat = new JacksonDateformatTest();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
mapper.setDateFormat(df);
jacksonDateformat.dateformat();
}
public void dateformat() throws Exception {
String json = "{\"birthDate\":\"1980-12-08\"}";
Reader reader = new StringReader(json);
Employee emp = mapper.readValue(reader, Employee.class);
System.out.println(emp);
}
}
// Lớp Employee
class Employee implements Serializable {
private Date birthDate;
public Date getBirthDate() { return birthDate; }
public void setBirthDate(Date birthDate) { this.birthDate = birthDate; }
@Override
public String toString() {
return "Employee [birthDate=" + birthDate + "]";
}
}
Kết quả đầu ra
Employee [birthDate=Mon Dec 08 00:00:00 IST 1980]
Lưu ý hiện đại: Từ Java 8, nên sử dụng java.time.LocalDate và java.time.format.DateTimeFormatter thay cho java.util.Date và SimpleDateFormat. Jackson hỗ trợ module jackson-datatype-jsr310 để xử lý Java Time API tự động.