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); }}