GSON example – Read and write JSON

In this post,we will see how can we read and write JSON using GSON.

Java JSON Tutorial Content:

reading and writing JSON using json-simple.We will use another way(i.e. GSON) of reading JSON.
Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.
There are various goals or advantages of using GSON(taken from GSON offcial page)

  • Provide simple toJson() and fromJson() methods to convert Java objects to JSON and vice-versa
  • Allow pre-existing unmodifiable objects to be converted to and from JSON
  • Extensive support of Java Generics
  • Allow custom representations for objects
  • Support arbitrarily complex objects (with deep inheritance hierarchies and extensive use of generic types)

Reading and writing JSON using GSON is very easy.You can use these two methods:
toJSON() : It will convert simple pojo object to JSON string.
FromJSON() : It will convert JSON string to pojo object.
In this post,we will read and write JSON using GSON.
Download gson-2.2.4 jar from here.
Create a java project named “GSONExample”
Create a folder jars and paste downloaded jar gson-2.2.4.jar.
right click on project->Property->java build path->Add jars and then go to src->jars->gson-2.2.4.jar.

Click on ok.
Then you will see json-simple-1.1 jar added to your libraries and then click on ok

First create a pojo named “Country.java”

package org.arpit.java2blog.pojo;

import java.util.ArrayList;
import java.util.List;

public class Country {

    String name;
    int population;
    private List listOfStates;

    //getter and setter methods

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPopulation() {
        return population;
    }

    public void setPopulation(int population) {
        this.population = population;
    }

    public List getListOfStates() {
        return listOfStates;
    }

    public void setListOfStates(List listOfStates) {
        this.listOfStates = listOfStates;
    }

}

Write JSON to file:

Create a new class named “GSONWritingToFileExample.java” in src->org.arpit.java2blog

package org.arpit.java2blog;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.arpit.java2blog.pojo.Country;
import com.google.gson.Gson;

/*
 * @Author : Arpit Mandliya
 */
public class GSONWritingToFileExample {

 public static void main(String[] args) {

  Country countryObj=new Country();
  countryObj.setName("India");
  countryObj.setPopulation(1000000);
  List listOfStates=new ArrayList();
  listOfStates.add("Madhya Pradesh");
  listOfStates.add("Maharastra");
  listOfStates.add("Rajasthan");

  countryObj.setListOfStates(listOfStates);
  Gson gson = new Gson();

  // convert java object to JSON format,
  // and returned as JSON formatted string
  String json = gson.toJson(countryObj);

  try {
   //write converted json data to a file named "CountryGSON.json"
   FileWriter writer = new FileWriter("E:CountryGSON.json");
   writer.write(json);
   writer.close();

  } catch (IOException e) {
   e.printStackTrace();
  }

  System.out.println(json);

     }
}

Run above program and content of file CountryGSON.json will be as below :

{"name":"India","population":1000000,"listOfStates":["Madhya Pradesh","Maharastra","Rajasthan"]}

Read JSON to file:

Here we will read above created JSON file.
Create a new class named “JSONSimpleReadingFromFileExample.java” in src->org.arpit.java2blog

package org.arpit.java2blog;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import org.arpit.java2blog.pojo.Country;
import com.google.gson.Gson;

/*
 * @Author : Arpit Mandliya
 */
public class GSONReadingFromFileExample {

 public static void main(String[] args) {

  Gson gson = new Gson();

  try {

   System.out.println("Reading JSON from a file");
   System.out.println("----------------------------");

   BufferedReader br = new BufferedReader(
     new FileReader("E:file.json"));

    //convert the json string back to object
   Country countryObj = gson.fromJson(br, Country.class);

   System.out.println("Name Of Country: "+countryObj.getName());

   System.out.println("Population: "+countryObj.getPopulation());

   System.out.println("States are :");

   List listOfStates = countryObj.getListOfStates();
   for (int i = 0; i < listOfStates.size(); i++) {
    System.out.println(listOfStates.get(i));
   }

  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

Run above program and you will get following output:

Reading JSON from a file
----------------------------
Name Of Country: India
Population: 1000000
States are :
Madhya Pradesh
Maharastra
Rajasthan

Project Structure:

[social_share share_on="facebook,twitter,linkedin,whatsapp"][post_navigator in_same_term="true"]

Comments

  1. Is there an example w/simple json where you update records within a json object.

    For example w/structure below how to add a key/value pair to each element?
    {
    “data”: [
    {
    “Atomic Symbol”: “H”,
    “Atomic Number”: “1”,
    },
    {
    “Atomic Symbol”: “He”,
    “Atomic Number”: “2”,
    }

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.