Tuesday 1 October 2019

Jackson: Convert json to a list


We have a json string like below.
[
  {
    "id": 1,
    "firstName": "Ravindra",
    "lastName": "Gidugu"
  },
  {
    "id": 2,
    "firstName": "Rahim",
    "lastName": "Khan"
  },
  {
    "id": 3,
    "firstName": "Joel",
    "lastName": "Chelli"
  },
  {
    "id": 4,
    "firstName": "Ram",
    "lastName": "GUrram"
  }
]

Below statement convert the json string to an array.

ObjectMapper objectMapper = new ObjectMapper();
Employee[] deserializedEmps = objectMapper.readValue(json, Employee[].class);
List<Employee> empsList = Arrays.asList(deserializedEmps);

Find the below working application.

Employee.java
package com.sample.app.model;

public class Employee {
  private int id;

  private String firstName;
  private String lastName;

  public Employee() {

  }

  public Employee(int id, String firstName, String lastName) {
    super();
    this.id = id;
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return "Employee [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]";
  }

}


App.java
package com.sample.app;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.sample.app.model.Employee;

public class App {

  public static void main(String args[]) throws IOException {
    Employee emp1 = new Employee(1, "Ravindra", "Gidugu");
    Employee emp2 = new Employee(2, "Rahim", "Khan");
    Employee emp3 = new Employee(3, "Joel", "Chelli");
    Employee emp4 = new Employee(4, "Ram", "GUrram");

    List<Employee> emps = Arrays.asList(emp1, emp2, emp3, emp4);

    ObjectMapper objectMapper = new ObjectMapper();

    String json = objectMapper.writeValueAsString(emps);

    System.out.println(json + "\n");

    Employee[] deserializedEmps = objectMapper.readValue(json, Employee[].class);
    List<Employee> empsList = Arrays.asList(deserializedEmps);

    for (Employee emp : empsList) {
      System.out.println(emp);
    }
  }
}


Output
[{"id":1,"firstName":"Ravindra","lastName":"Gidugu"},{"id":2,"firstName":"Rahim","lastName":"Khan"},{"id":3,"firstName":"Joel","lastName":"Chelli"},{"id":4,"firstName":"Ram","lastName":"GUrram"}]

Employee [id=1, firstName=Ravindra, lastName=Gidugu]
Employee [id=2, firstName=Rahim, lastName=Khan]
Employee [id=3, firstName=Joel, lastName=Chelli]
Employee [id=4, firstName=Ram, lastName=GUrram]



Previous                                                    Next                                                    Home

No comments:

Post a Comment