/*
*
*/
package org.smartly.commons.io.serialization.json;
import org.json.JSONException;
import org.json.JSONObject;
import org.smartly.commons.io.serialization.json.utils.JsonBeanUtils;
/**
* Simple serializer/deserializer from java bean to json string and from
* json string to JSONObject (or Exception or List of JSONObject)
*
* @author angelo.geminiani
*/
public class JsonSerializer {
private static final String TAG_TYPE = JsonBeanUtils.TAG_TYPE;
private static final String OBJECT = JsonBeanUtils.TYPE_OBJECT;
private static final String ERROR = JsonBeanUtils.TYPE_ERROR;
public static String serialize(final Object object) throws JSONException {
final JsonBean result = new JsonBean(object);
return result.toString();
}
/**
* Deserialize JSON string. Return:<br/>
* <ul>
* <li>Exception</li><br/>
* <li>JSONObject</li><br/>
* <li>List of JSONObject</li><br/>
* </ul>
*
* @param jsontext
* @return
*/
public static Object deserialize(final String jsontext) {
final JsonBean result = new JsonBean(jsontext);
return result.asObject();
}
public static boolean isError(final String json) {
try {
return isError(new JSONObject(json));
} catch (Throwable t) {
}
return false;
}
public static boolean isError(final JSONObject json) {
final String classType = json.optString(TAG_TYPE, null);
if (null != classType) {
return classType.equals(ERROR);
}
return false;
}
public static boolean isObject(final String json) {
try {
return isObject(new JSONObject(json));
} catch (Throwable t) {
}
return false;
}
public static boolean isObject(final JSONObject json) {
final String classType = json.optString(TAG_TYPE, null);
if (null != classType) {
return classType.equals(OBJECT);
}
return false;
}
// ------------------------------------------------------------------------
// p r i v a t e
// ------------------------------------------------------------------------
}