Skip to main content

How to Read and Write JSON data using GSON

JSON stand for JavaScript Object Notation. In today's development world online application design is not possible without the skills of the JSON. Every application need to read and write the data into JSON format. So, here in this tutorial we are going to learn about " How to Read and Write JSON data using GSON"

Here JSON means we need to add as dependency in our application build.gradle file. So before starting this tutorial you should create a Simple Project with name of "JSON Tutorial" or any other name you per your preference.

For more advanced use of JSON, read below tutorial:-

JSON Basic Element

A JSON object contain many part. Here is the details about how data are stored into the JSON file.

JSON Array([)

In a JSON file , a square bracket ([) represents a JSON array, we can retrieve the JSON array using the below method.
JSONArray jsonarray=response.getJSONArray("keyValue");

JSON Objects({)

In a JSON file, curly bracket ({) represents a JSON object, we can retrieve a JSON Object using the below method.
JSONObject response=obj.getJSONObject("keyObject");


A JSON object has a key that is just a string. A Value of key/value pair create a JSON objects, In above example "keyObject" is the key.

JSON Value

Every key has a value that could be string , integer, Json Object, Json Array or double e.t.c. In above two example we have fetch the JSON object and JSON array using the key. Below is the sample code to fetch the String.
String value=Obj.getString("key");

Sample JSON file

Below is a sample JSON file which we will created in this tutorial and parse the same JSON file and it is required by below as well.
{ "postHeading": "How to Read and Write JSON data using GSON", 
"postUrl": "",
"postAuthor": "Pawan Kumar",
"Json", "Angular",

First of all we need to create a class to store the JSON data. Which we will use to automatically store the json data into files and vice versa.
package com.nplix.jsontutorial;

import java.util.List;

* Created by PK on 12/17/2017.

public class Post {
private String postHeading;
private String postUrl;
private String postAuthor;
private List<String> postTag;

public Post() {

public Post(String PostHeading, String PostUrl, String PostAuthor,List<String> tags) {
this.postHeading = PostHeading;
this.postUrl = PostUrl;
this.postAuthor = PostAuthor;

public String getPostHeading() {
return postHeading;

public void setPostHeading(String postHeading) {
this.postHeading = postHeading;

public String getPostUrl() {
return postUrl;

public void setPostUrl(String postUrl) {
this.postUrl = postUrl;

public String getPostAuthor() {
return postAuthor;

public void setPostAuthor(String postAuthor) {
this.postAuthor = postAuthor;

public List<String> getPostTag() {
return postTag;

public void setPostTag(List<String> postTag) {
this.postTag = postTag;

Prepare the file as given below and initialize the some basic variable and method which we are going to use in our code.

Variable Initialization for JSON Tutorial

private TextView textView;
private StringBuilder stringBuilder;

In our Activity onCreate method add below line, you might get some error as we call two method here which are yet not created in our

// Get the file Location and name where Json File are get stored
String fileName=getCacheDir()+"PostJson.json";

//call write Json method

//Read the written Json File

Write JSON data to file

Create a method which will write the Json data to file and later we will use the same file while we are reading the JSON from file.
private void writeJSONtoFile(String s) {

//Create list to store the all Tags
List<String> tags=new ArrayList<String>();
// Add the Tag to List

//Create a Object of Post
Post post=new Post("Json Tutorial","","Pawan Kumar",tags);

//Create a Object of Gson
Gson gson=new Gson();

//Convert the Json object to JsonString
String jsonString=gson.toJson(post);

//Initialize the File Writer
FileWriter fileWriter= null;
try {
fileWriter = new FileWriter(s);
} catch (IOException e) {
//write the json string to file
try {
} catch (IOException e) {
//Close the File
try {
} catch (IOException e) {

In below code we will create a list to store the all Tags.
List<String> tags=new ArrayList<String>();

In this part of the code we are creating the object of Post class.
 Post post=new Post("Json Tutorial","","Pawan Kumar",tags);

Create an Object of Gson
 Gson gson=new Gson();

Convert the Json object to JsonString
 String jsonString=gson.toJson(post);

Here in below code we will write the Json data to file.
FileWriter fileWriter= null;
try {
fileWriter = new FileWriter(s);
} catch (IOException e) {

So now write the json string to file.
try {
} catch (IOException e) {

Reading the data from JSON file

We have create the above method to write the JSON data into the file. It will store the file into cache memory. We are storing the files into the cache memory, so that system can release this automatically when system run out of space.

Now in the below method we are using the same file for reading and converting them to JSON format. Below code is self-explanatory along with comment.
private void readJSONfromFile(String s) {
//Creating a new Gson object to read data
Gson gson=new Gson();
//Read the PostJSON.json file
try {
BufferedReader bufferedReader = new BufferedReader(
new FileReader(s));
//Convert the Json File to Gson Object
Post post=gson.fromJson(bufferedReader,Post.class);
//Initialize the String Builder
stringBuilder=new StringBuilder("Post Details\n---------------------");
stringBuilder.append("\nPost Heading: "+post.getPostHeading());
stringBuilder.append("\nPost URL: "+post.getPostUrl());
stringBuilder.append("\nPost Author: "+post.getPostAuthor());

//get the all Tags
for(String Tag:post.getPostTag()){

//Display the all Json object in text View
} catch (FileNotFoundException e) {


Reading and Writing the Json data into file is very easy, only most important thing is that we should have same variable name in Gson file as given sample JSON file at start of tutorial and variable name in file.

Other Post of JSON and REST:-



  1. […] Kotlin is now official language for Android development and it is well support in Android Studio. So here in this tutorial we are going to learn about how to read and write GSON data in Kotlin. If you would like learn the java version of this tutorial check out the last tutorial “How to Read and Write JSON data using GSON“. […]


Post a Comment

Popular posts from this blog

Flutter Theme Creation, Programmatic Way

Flutter and Dart is an excellent combination for creating the mobile app with material design with nice GUI. Its lots of widget which help the developer for creating the app UI very fast with respect to the other language. You may face some problem in starting due to comm, curly brace and semicolon but after some time you will find the way how to work with these all stuff and it becomes very easy for you. But in this article, we are not going to discuss all these. In this article, we will handle a very interesting topic on how to create a custom theme or multiple themes and let's user decide which theme to use.

Create a flutter project

So let's create a flutter project by selecting the appropriate option from the File menu in android studio or Visual Code. If you are new to Flutter and Dart you can check out our recent post to get started Creating Cross-platform app using flutter.

Once your project is created you will get the default counter app and you try running the app in the…

Flutter How to Start Android Activity from Flutter View

Flutter and Dart is an excellent combination for creating the UI, but for accessing the platform-specific service we need to open platform-specific activity. So lets in this article we will explore how to start an android activity and access the service from Flutter View.

Create a Project for this Android Activity Flutter View Demo Create a Project From File menu select the New Flutter Project Enter the project name Select the AndroidX support and click on next After the above, we step click on Finish We will have the following project structure created. Create the Second Activity in Android
Just go to the android folder and open it in separate windows. We will have the following project structure.

Create the Activity Just right click on the Kotlin folder and create a blank activity from the menu. If you create the activity then you may be required to upgrade the Gradle and do some import. So Just click on update and wait for the project sync completed.
Update the project build config …

Flutter State Management With Provider and ChangeNotifier

Flutter state management with provider library and why it's so important? There are lots of topics in flutter which are very important but out of those state management of your flutter application is the most important and little bit complicated as well. So in this article, I will try to explain how to use the provider package for managing the state of flutter and dart application and how to access the data down the hierarchy of the widget tree without recreating the whole UI.

Basic knowledge of the state management and data flow in the Flutter

Before starting the coding I would like to explain some basics about the Flutter application so that you can understand, why it's important to manage the state of your application in the correct way.

In Flutter, everything is a widget and whenever the state of your application changes the UI is recreated the UI with the new data. Let's list out the topic or problem that we are going to explore about state management.

Challenge of St…