How to Save JSON in a File Using Gson API

The Gson library is a popular Java library developed by Google for working with JSON (JavaScript Object Notation). It allows easy conversion between Java objects and JSON representations. One of the most common tasks when working with JSON is saving a JSON object to a file. In this blog post, we will explore how to save a JSON object into a file using the Gson API.

What is Gson?

Gson is a Java library that can be used to convert Java objects into their JSON representation and vice versa. The conversion process is called marshalling and unmarshalling.

Features of Gson:

  • Convert Java objects to JSON and vice versa.
  • Supports complex objects like nested objects and lists.
  • Can customize the way objects are serialized and deserialized.
  • Simple API and high performance.

Step-by-Step Guide: Saving JSON to a File with Gson

Prerequisites:

Before we begin, ensure you have the following:

  1. Java Development Kit (JDK) installed.
  2. Gson library added to your project. If you're using Maven, add the Gson dependency to your pom.xml.
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>

You can find the latest version of Gson on Maven Repository.

Steps to Save JSON in a File Using Gson

Step 1: Create a Java Object

First, we need to create a Java object that we want to convert to JSON. Let’s create a simple Person class for this purpose:

public class Person {

    private String name;

    private int age;

    private String city;


    // Constructor

    public Person(String name, int age, String city) {

        this.name = name;

        this.age = age;

        this.city = city;

    }


    // Getters and Setters

    public String getName() {

        return name;

    }


    public void setName(String name) {

        this.name = name;

    }


    public int getAge() {

        return age;

    }


    public void setAge(int age) {

        this.age = age;

    }


    public String getCity() {

        return city;

    }


    public void setCity(String city) {

        this.city = city;

    }

}

Step 2: Create a Gson Instance

Next, we will create an instance of Gson. The Gson class provides methods to convert Java objects into JSON strings.

import com.google.gson.Gson;


public class SaveJsonToFile {

    public static void main(String[] args) {

        // Create a Person object

        Person person = new Person("John Doe", 30, "New York");


        // Create a Gson object

        Gson gson = new Gson();


        // Convert the Person object to JSON format

        String json = gson.toJson(person);


        // Print the JSON representation

        System.out.println(json);

    }

}

In the above code, gson.toJson(person) converts the Person object to a JSON string.

Step 3: Write JSON to a File

Now that we have the JSON representation of the Person object, the next step is to write it to a file. We will use Java's FileWriter and BufferedWriter classes to save the JSON string to a file.

import com.google.gson.Gson;

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;


public class SaveJsonToFile {

    public static void main(String[] args) {

        // Create a Person object

        Person person = new Person("John Doe", 30, "New York");


        // Create a Gson object

        Gson gson = new Gson();


        // Convert the Person object to JSON format

        String json = gson.toJson(person);


        // Write JSON to a file

        try (BufferedWriter writer = new BufferedWriter(new FileWriter("person.json"))) {

            writer.write(json);

            System.out.println("JSON has been saved to person.json");

        } catch (IOException e) {

            System.err.println("Error writing to file: " + e.getMessage());

        }

    }

}

Explanation:

  • BufferedWriter is used for efficient writing of characters to a file.
  • FileWriter("person.json") specifies the output file where the JSON will be saved. If the file doesn't exist, it will be created.
  • The write() method writes the JSON string into the file.

Step 4: Verify the Output

After running the program, check your project directory for the file person.json. It should contain the following content:

{

  "name": "John Doe",

  "age": 30,

  "city": "New York"

}

Error Handling

It’s a good practice to handle exceptions when working with file I/O operations. In this example, we used a try-catch block to catch IOException in case the file could not be written.

Followers