- Given a list of user defined objects, we would like to convert list of pojo objects to JSON (and JSON to list of objects).
- We will use the jackson’s objectmapper, to serialize list of objects to JSON & deserialize JSON to List of objects.
- We will create Person class & we will perform following operations with Person class.
- Convert List of Person objects to JSON
- Convert the JSON to List of Person objects.
- We have discussed similar posts:
1. Jackson objectMapper maven dependencies
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.1</version>
</dependency>
2. Convert list of objects to/from JSON in java (jackson objectmapper)
2.1. Person Class:
- Person class containing attributes is as follows:
package org.learn;
public class Person {
public String firstName;
public String lastName;
public int age;
public Person() {
}
public Person(String firstName, String lastName,
int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public String toString() {
return "[" + firstName + " " + lastName +
" " + age +"]";
}
}
2.2. JSONListConverter Class:
JSONListConverter class is responsible for performing following operations.
- Convert List of Person objects to JSON String in java.
- Convert JSON String to List of Person objects in java.
package org.learn;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
public class JSONListConverter
{
public static void main( String[] args ) throws IOException
{
ObjectMapper objectMapper = new ObjectMapper();
//Set pretty printing of json
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
//Define map which will be converted to JSON
List<Person> personList = Stream.of(
new Person("Mike", "harvey", 34),
new Person("Nick", "young", 75),
new Person("Jack", "slater", 21 ),
new Person("gary", "hudson", 55))
.collect(Collectors.toList());
//1. Convert List of Person objects to JSON
String arrayToJson = objectMapper.writeValueAsString(personList);
System.out.println("1. Convert List of person objects to JSON :");
System.out.println(arrayToJson);
//2. Convert JSON to List of Person objects
//Define Custom Type reference for List<Person> type
TypeReference<List<Person>> mapType = new TypeReference<List<Person>>() {};
List<Person> jsonToPersonList = objectMapper.readValue(arrayToJson, mapType);
System.out.println("\n2. Convert JSON to List of person objects :");
//Print list of person objects output using Java 8
jsonToPersonList.forEach(System.out::println);
}
}
Download Example Code – Jackson List to JSON
3. Output – list of objects to/from JSON in java (jackson objectmapper)
1. Convert List of person objects to JSON :
[ {
"firstName" : "Mike",
"lastName" : "harvey",
"age" : 34
}, {
"firstName" : "Nick",
"lastName" : "young",
"age" : 75
}, {
"firstName" : "Jack",
"lastName" : "slater",
"age" : 21
}, {
"firstName" : "gary",
"lastName" : "hudson",
"age" : 55
} ]
2. Convert JSON to List of person objects :
[Mike harvey 34]
[Nick young 75]
[Jack slater 21]
[gary hudson 55]