How to convert a Java Object to a JSONObject? How to convert a Java Object to a JSONObject? json json

How to convert a Java Object to a JSONObject?


If we are parsing all model classes of server in GSON format then this is a best way to convert java object to JSONObject.In below code SampleObject is a java object which gets converted to the JSONObject.

SampleObject mSampleObject = new SampleObject();String jsonInString = new Gson().toJson(mSampleObject);JSONObject mJSONObject = new JSONObject(jsonInString);


If it's not a too complex object, you can do it yourself, without any libraries. Here is an example how:

public class DemoObject {    private int mSomeInt;    private String mSomeString;    public DemoObject(int i, String s) {        mSomeInt = i;        mSomeString = s;    }    //... other stuff    public JSONObject toJSON() {        JSONObject jo = new JSONObject();        jo.put("integer", mSomeInt);        jo.put("string", mSomeString);        return jo;    }}

In code:

DemoObject demo = new DemoObject(10, "string");JSONObject jo = demo.toJSON();

Of course you can also use Google Gson for more complex stuff and a less cumbersome implementation if you don't mind the extra dependency.


The example below was pretty much lifted from mkyongs tutorial. Instead of saving to a file you can just use the String json as a json representation of your POJO.

import java.io.FileWriter;import java.io.IOException;import com.google.gson.Gson;public class GsonExample {    public static void main(String[] args) {        YourObject obj = new YourOBject();        Gson gson = new Gson();        String json = gson.toJson(obj); //convert         System.out.println(json);    }}