GSON is an open source JSON parser developed by Google to serialize and deserialize JSON in Java. In my previous article, we looked at reading and writing JSON to a file using JSON.simple. In this article, we will learn how to use GSON to Read and Write JSON in Java (parse JSON file to Java objects and vice-versa Java object to JSON)
Read and Write JSON – GSON
Dependency
As a pre-requisite, you are required to download the gson2.7.jar (or) if you are running on maven add the below dependency to your pom.xml
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.7</version> </dependency>
JSON file content(employee.json)
{ "EmployeeName": "www.javainterviewpoint.com", "EmployeeId": 999, "Department": [ "Engineering", "Automobile", "Manufacturing", "Quality Assurance" ] }
Employee.java
A simple POJO for holding the Employee details.
package com.javainterviewpoint; import java.util.List; public class Employee { private String EmployeeName; private int EmployeeId; private List<String> Department; public Employee() { super(); } public Employee(String employeeName, int employeeId, List department) { super(); EmployeeName = employeeName; EmployeeId = employeeId; Department = department; } public String getEmployeeName() { return EmployeeName; } public void setEmployeeName(String employeeName) { EmployeeName = employeeName; } public int getEmployeeId() { return EmployeeId; } public void setEmployeeId(int employeeId) { EmployeeId = employeeId; } public List<String> getDepartment() { return Department; } public void setDepartment(List<String> department) { Department = department; } }
JSON Reader
package com.javainterviewpoint; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import com.google.gson.Gson; public class JSON_Reader_GSON { public static void main(String[] args) { try { //Create a new Gson object Gson gson = new Gson(); //Read the employee.json file BufferedReader br = new BufferedReader( new FileReader("D:\\employee.json")); //convert the json to Java object (Employee) Employee employee = gson.fromJson(br, Employee.class); //Printing the Employee Details System.out.println("****Employee Details****"); System.out.println("Employee Name : "+employee.getEmployeeName()); System.out.println("Employee ID : "+employee.getEmployeeId()); System.out.print("Employee Department: "); for(String department : employee.getDepartment()) { System.out.print(department+" | "); } } catch (IOException e) { e.printStackTrace(); } } }
We will be performing the below steps to parse a JSON File in Java
- Create a new Gson object
Gson gson = new Gson();
- Read the employee.json using BufferedReader
BufferedReader br = new BufferedReader( new FileReader("D:\\employee.json"));
- Using the fromJson() method of the gson object, parse the JSON to Java Object (Employee.java) and it automatically maps the values to the corresponding property.
Employee employee = gson.fromJson(br, Employee.class);
- Finally, print the Employee details
System.out.println("****Employee Details****"); System.out.println("Employee Name : "+employee.getEmployeeName()); System.out.println("Employee ID : "+employee.getEmployeeId()); System.out.print("Employee Department: "); for(String department : employee.getDepartment()) { System.out.print(department+" | "); }
Output :
JSON Writer
package com.javainterviewpoint; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; public class JSON_Writer_GSON { public static void main(String[] args) { try { //Create a new Employee object Employee employee = new Employee(); //Set values to its properties employee.setEmployeeName("JavaInterviewPoint"); employee.setEmployeeId(100); List departmentList = new ArrayList(); departmentList.add("Chemical"); departmentList.add("Mechanical"); departmentList.add("Automobile"); departmentList.add("Computer"); employee.setDepartment(departmentList); // Create a new Gson object Gson gson = new Gson(); //convert the Java object to json String jsonString = gson.toJson(employee); //Write JSON String to file FileWriter fileWriter = new FileWriter("D:\\employee.json"); fileWriter.write(jsonString); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }
- Create a new Employee object
Employee employee = new Employee();
- Set values to the properties of the Employee class.
employee.setEmployeeName("JavaInterviewPoint"); employee.setEmployeeId(100); List departmentList = new ArrayList(); departmentList.add("Chemical"); departmentList.add("Mechanical"); departmentList.add("Automobile"); departmentList.add("Computer"); employee.setDepartment(departmentList);
- Convert Java Object to JSON, using the toJson() method of Gson.
String jsonString = gson.toJson(employee);
- Finally, using the FileWriter write the json string to the employee.json
Output :
employee.json will have the below content
{ "EmployeeName":"JavaInterviewPoint", "EmployeeId":100, "Department": ["Chemical","Mechanical","Automobile","Computer"] }
Leave a Reply