package com.googlecode.mycontainer.commons.httpclient;
import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.googlecode.mycontainer.commons.json.JsonHandler;
public class JsonProtocol implements Serializable {
private static final long serialVersionUID = 6187472539919353191L;
private String json;
private String callback;
public Object parse() {
return JsonHandler.instance().parse(json);
}
public <T> T parse(Class<T> clazz) {
return JsonHandler.instance().parse(json, clazz);
}
public String getCallback() {
return callback;
}
public void setCallback(String callback) {
this.callback = callback;
}
public String formatJson() {
Object obj = parse();
return JsonHandler.instance().format(obj);
}
public String formatJson(Class<?> clazz) {
Object obj = parse(clazz);
return JsonHandler.instance().format(obj);
}
public void parse(String content) {
content = content.trim();
content = content.split(";$")[0].trim();
Pattern pattern = Pattern.compile("((^.*)(\\())(.*)([\\);]$)");
Matcher matcher = pattern.matcher(content);
if (matcher.matches()) {
setCallback(matcher.group(2).trim());
setJson(matcher.group(4).trim());
} else {
setJson(content);
}
}
public void setJson(String json) {
this.json = json;
}
public String getJson() {
return json;
}
}