- Given the user defined object or POJO having date field, we would like to serialize the POJO to JSON.
- During serialization, we would like save date as a timestamp or ISO format.
- We will use the Jackson’s ObjectMapper to achieve the conversion.
- We will create Person class and we will perform the following operations with Person class.
- Convert Person Object to JSON
- Serialize date as time stamp (default serialization)
- Convert Person Object to JSON
- Serialize date parameter as ISO format
- Convert the JSON to person object
- DeSerialize date as timestamp
- Convert Person Object to JSON
Jackson ObjectMapper Maven Dependencies
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.1</version> </dependency>
Program – Convert Date to/from timestamp in java (POJO <->JSON)
1.) Person Class:
- The person class containing date data member.
- We have overloaded toString method to display content of person object.
package org.learn; import java.util.Date; public class Person { public String firstName; public String lastName; public Date dob; public Person() { } public Person(String firstName, String lastName, Date dob) { this.firstName = firstName; this.lastName = lastName; this.dob = dob; } public String toString() { return "[" + firstName + " " + lastName + " " + dob.getTime() +"]"; } }
2.) JSONObjectConverter Class:
We are performing following operation in JSONObjectConverter class.
- Convert Person Object to JSON
- Serialize date as time stamp (default serialization)
- Convert Person Object to JSON
- Serialize date parameter as ISO format
- Convert the JSON to person object
- DeSerialize date as timestamp
package org.learn; import java.io.IOException; import java.util.Date; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; public class JSONObjectConverter { public static void main( String[] args ) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); //Set pretty printing of json objectMapper.enable(SerializationFeature.INDENT_OUTPUT); Person objPerson = new Person("Mike", "harvey", new Date()); //Convert Person object to json String json = objectMapper.writeValueAsString(objPerson); System.out.println("1. Convert Person to JSON - Date as timestamp"); System.out.println(json); //Disable the timestamp serialization objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); json = objectMapper.writeValueAsString(objPerson); System.out.println("2. Convert Person to JSON - Date without timestamp"); System.out.println(json); //Convert to json to person object System.out.println("3. Deserialize JSON to person object"); Person objFromJson = objectMapper.readValue(json, Person.class); System.out.println(objFromJson); } }
Download Example Code-Jackson Object (Date) to JSON
Output – Date serialization & deserialization in java (POJO <-> JSON)
1. Convert Person to JSON - Date as timestamp { "firstName" : "Mike", "lastName" : "harvey", "dob" : 1329142874258 } 2. Convert Person to JSON - Date without timestamp { "firstName" : "Mike", "lastName" : "harvey", "dob" : "2012-02-13T14:21:14.258+0000" } 3. Deserialize JSON to person object [Mike harvey 1329142874258]