JSON File to Java Example
Table of Contents
In this article, I am going to show how to parse the JSON file to java object. Suppose we have a JSON file and we need to parse the JSON data into java object to perform the operations
Pre-Requisites
- Java 1.8
- Google JSON
- Eclipse IDE
- Maven
In the eclipse create a maven project as follows.
Address.java
package com.narayanatutorial.json;
public class Address {
private String street;
private String city;
private int zipcode;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public int getZipcode() {
return zipcode;
}
public void setZipcode(int zipcode) {
this.zipcode = zipcode;
}
@Override
public String toString(){
return getStreet() + ", "+getCity()+", "+getZipcode();
}
}
Employee.java
package com.narayanatutorial.json;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.google.gson.annotations.SerializedName;
public class Employee {
@SerializedName("empID")
private int id;
private String name;
private boolean permanent;
private Address address;
private long[] phoneNumbers;
private String role;
private List<String> cities;
//private Map<String, String> properties;
private properties properties;
public properties getProperties() {
return properties;
}
public void setProperties(properties properties) {
this.properties = properties;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isPermanent() {
return permanent;
}
public void setPermanent(boolean permanent) {
this.permanent = permanent;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public long[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(long[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
@Override
public String toString(){
StringBuilder sb = new StringBuilder();
sb.append("***** Employee Details *****\n");
sb.append("ID="+getId()+"\n");
sb.append("Name="+getName()+"\n");
sb.append("Permanent="+isPermanent()+"\n");
sb.append("Role="+getRole()+"\n");
sb.append("Phone Numbers="+Arrays.toString(getPhoneNumbers())+"\n");
sb.append("Address="+getAddress()+"\n");
sb.append("Cities="+Arrays.toString(getCities().toArray())+"\n");
//sb.append("Properties="+getProperties()+"\n");
sb.append("*****************************");
return sb.toString();
}
public List<String> getCities() {
return cities;
}
public void setCities(List<String> cities) {
this.cities = cities;
}
// public Map<String, String> getProperties() {
// return properties;
// }
// public void setProperties(Map<String, String> properties) {
// this.properties = properties;
// }
}
Create JSON File
Create JSON file in the D:\ drive and give the path in java file.
{
"empID": 100,
"name": "David",
"permanent": false,
"address": {
"street": "BTM 1st Stage",
"city": "Bangalore",
"zipcode": 560100
},
"phoneNumbers": [
123456,
987654
],
"role": "Manager",
"cities": [
"Los Angeles",
"New York"
],
"properties": {
"age": "28 years",
"salary": "1000 Rs"
}
}
EmployeeGsonExample .java (Reading JSON file)
// read JSON file data as String
String fileData = new String(Files.readAllBytes(Paths
.get("D:/employee")));
// parse json string to object
Employee emp1 = gson.fromJson(fileData, Employee.class);
Complete Code
package com.narayanatutorial.json;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class EmployeeGsonExample {
public static void main(String[] args) throws IOException {
//Employee emp = createEmployee();
// Get Gson object
Gson gson = new GsonBuilder().setPrettyPrinting().create();
// read JSON file data as String
String fileData = new String(Files.readAllBytes(Paths
.get("D:/employee")));
// parse json string to object
Employee emp1 = gson.fromJson(fileData, Employee.class);
Address ad=emp1.getAddress();
properties props=emp1.getProperties();
String street=ad.getStreet();
String age=props.getAge();
System.out.println("age:"+age);
System.out.println("address:"+street);
System.out.println("Name:"+emp1.getName()+" "+emp1.getAddress().getStreet());
// print object data
//System.out.println("\n\nEmployee Object\n\n" + emp1);
// create JSON String from Object
//String jsonEmp = gson.toJson(emp);
// System.out.print(jsonEmp);
}
public static Employee createEmployee() {
Employee emp = new Employee();
emp.setId(100);
emp.setName("David");
emp.setPermanent(false);
emp.setPhoneNumbers(new long[] { 123456, 987654 });
emp.setRole("Manager");
Address add = new Address();
add.setCity("Bangalore");
add.setStreet("BTM 1st Stage");
add.setZipcode(560100);
emp.setAddress(add);
List<String> cities = new ArrayList<String>();
cities.add("Los Angeles");
cities.add("New York");
emp.setCities(cities);
Map<String, String> props = new HashMap<String, String>();
props.put("salary", "1000 Rs");
props.put("age", "28 years");
//emp.setProperties(props);
return emp;
}
}
GsonReading .java (Reading JSON file)
Just reading JSON from file and displaying the output.
package com.narayanatutorial.json;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class GsonReading {
public static void main(String args[]) throws IOException {
BufferedReader reader=new BufferedReader(new FileReader("D:/employee"));
String line="";
while((line= reader.readLine()) != null) {
if(line.contains("empID")) {
String[] arr=line.split(":");
System.out.println(arr[0]+" "+arr[1]);
}
//System.out.println("line:"+line);
}
}
}
pom.xml
add the following dependency to your project
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.5</version> </dependency>
Complete pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.narayanatutorial.json</groupId>
<artifactId>Json</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Json</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
<!-- Gson dependency -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
</project>
Get complete source code from Github
Hello! I am Narayanaswamy founder and admin of narayanatutorial.com. I have been working in the IT industry for more than 12 years. NarayanaTutorial is my web technologies blog. My specialties are Java / J2EE, Spring, Hibernate, Struts, Webservices, PHP, Oracle, MySQL, SQLServer, Web Hosting, Website Development, and IAM(ForgeRock) Specialist
I am a self-learner and passionate about training and writing. I am always trying my best to share my knowledge through my blog.
