JSON is stand for JavaScript Object Notation, it is a lightweight data-interchange format. You can see many Java applications started to throw away XML format and start using json as a new s data-interchange format. Java is all about object, often times, you need to convert an object into json format for data-interchange or vice verse.

In this article, we show you how to use Gson, JSON library, to convert object to/from json.

Gson is easy to learn and implement, what we need to know are following two methods

  1. toJson() – Convert Java object to JSON format
  2. fromJson() – Convert JSON into Java object

1. Gson Dependency

For non-Maven user, get the Gson library from Gson official site, for Maven user, declares following dependency in your pom.xml.

  <dependency>
	<groupId>com.google.code.gson</groupId>
	<artifactId>gson</artifactId>
	<version>1.7.1</version>
  </dependency>

2. POJO

A pojo, with initialized values. Later use Gson to convert this object to/from JSON formatted string.

package com.mkyong.core;
 
import java.util.ArrayList;
import java.util.List;
 
public class DataObject {
 
	private int data1 = 100;
	private String data2 = "hello";
	private List<String> list = new ArrayList<String>() {
	  {
		add("String 1");
		add("String 2");
		add("String 3");
	  }
	};
 
	//getter and setter methods
 
	@Override
	public String toString() {
	   return "DataObject [data1=" + data1 + ", data2=" + data2 + ", list="
		+ list + "]";
	}
 
}

3. toJson() example

Convert object to JSON string, and save it as “file.json“.

package com.mkyong.core;
 
import java.io.FileWriter;
import java.io.IOException;
import com.google.gson.Gson;
 
public class GsonExample {
    public static void main(String[] args) {
 
	DataObject obj = new DataObject();
	Gson gson = new Gson();
 
	// convert java object to JSON format,
	// and returned as JSON formatted string
	String json = gson.toJson(obj);
 
	try {
		//write converted json data to a file named "file.json"
		FileWriter writer = new FileWriter("c:\\file.json");
		writer.write(json);
		writer.close();
 
	} catch (IOException e) {
		e.printStackTrace();
	}
 
	System.out.println(json);
 
    }
}

Output

{"data1":100,"data2":"hello","list":["String 1","String 2","String 3"]}

4. fromJson() example

Read data from “file.json“, convert back to object and display it.

package com.mkyong.core;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.google.gson.Gson;
 
public class GsonExample {
    public static void main(String[] args) {
 
	Gson gson = new Gson();
 
	try {
 
		BufferedReader br = new BufferedReader(
			new FileReader("c:\\file.json"));
 
		//convert the json string back to object
		DataObject obj = gson.fromJson(br, DataObject.class);
 
		System.out.println(obj);
 
	} catch (IOException e) {
		e.printStackTrace();
	}
 
    }
}

Output

DataObject [data1=100, data2=hello, list=[String 1, String 2, String 3]]
Pretty Print JSON
You may interest at this – How to enable pretty print JSON output

References

  1. Google Gson – http://code.google.com/p/google-gson/
  2. Json Official site – http://www.json.org/
  3. Json in Wiki – http://en.wikipedia.org/wiki/JSON
Tags :
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider making a donation to the charity, thanks.

Related Posts

Popular Posts