- Given an 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 Google gson library to achieve the conversion.
- We will create Person class and we will perform the following operations with Person class
- Convert List of Person objects to JSON.
- Convert the JSON to List of Person objects
GSON maven dependency
< dependency > < groupId >com.google.code.gson</ groupId > < artifactId >gson</ artifactId > < version >2.5</ version > </ dependency > |
Program – convert list of objects to/from json in java (GSON & example)
1.) Person Class:
- Person class containing firstName, lastName, age etc.
- We have overloaded toString method to print person information.
package org.learn.gson; public class Person { public String firstName; public String lastName; public int age; public String contact; public Person(String firstName, String lastName, int age, String contact) { this .firstName = firstName; this .lastName = lastName; this .age = age; this .contact = contact; } public String toString() { return "[" + firstName + " " + lastName + " " + age + " " +contact + "]" ; } } |
2.) JSONConverter Class:
JSONConverter is responsible for performing following operations.
- Convert List of Person objects to JSON.
- Convert the JSON to List of Person objects.
package org.learn.gson; import java.lang.reflect.Type; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; public class JSONConverter { public static void main( String[] args ) { Gson objGson = new GsonBuilder().setPrettyPrinting().create(); List personList = Stream.of( new Person( "Mike" , "harvey" , 34 , "001894536" ), new Person( "Nick" , "young" , 75 , "005425676" ), new Person( "Jack" , "slater" , 21 , "009654153" ), new Person( "gary" , "hudson" , 55 , "00564536" ), new Person( "Mike" , "harvey" , 21 , "003685417" ), new Person( "gary" , "hudson" , 25 , "00452341" )) .collect(Collectors.toList()); //Convert list to json System.out.println( "1. Convert list of person objects to Json" ); String json = objGson.toJson(personList); System.out.println(json); //Convert json back to list System.out.println( "2. Convert JSON to list of person objects" ); Type listType = new TypeToken<List>() {}.getType(); List readFromJson = objGson.fromJson(json, listType); readFromJson.forEach(System.out::println); } } |
Download Code – convert list of objects to/from json (GSON)
Output – convert list of objects to/from json in java (GSON & example)
1. Convert list of person objects to Json [ { "firstName" : "Mike" , "lastName" : "harvey" , "age" : 34, "contact" : "001894536" }, { "firstName" : "Nick" , "lastName" : "young" , "age" : 75, "contact" : "005425676" }, { "firstName" : "Jack" , "lastName" : "slater" , "age" : 21, "contact" : "009654153" }, { "firstName" : "gary" , "lastName" : "hudson" , "age" : 55, "contact" : "00564536" }, { "firstName" : "Mike" , "lastName" : "harvey" , "age" : 21, "contact" : "003685417" }, { "firstName" : "gary" , "lastName" : "hudson" , "age" : 25, "contact" : "00452341" } ] 2. Convert JSON to list of person objects [Mike harvey 34 001894536] [Nick young 75 005425676] [Jack slater 21 009654153] [gary hudson 55 00564536] [Mike harvey 21 003685417] [gary hudson 25 00452341] |