JSONConvertible interface allows a toJSONObject()
* method so that a class can change the behavior of
* JSONObject.put() and JSONArray.put(). The
* toJSONObject method will be used when a class will be put in the
* JSONObject or JSONArray and quoting the result.
*/
public interface JSONConvertible {
/**
* The toJSONObject method allows a class to produce its own
* JSON serialization.
*
* @return A JSONObject.
*/
public JSONObject toJSONObject();
}