public class ResponseUtils {
private Gson gson = new GsonBuilder()
.setLenient()
.registerTypeAdapter(BaseAlertEntity.class,new BaseAlertModuleAdapter())
.create();
private JsonObject jsonObject;
// private String jsonStr;
public boolean isSuccess() {
if (jsonObject == null || jsonObject.get("success") == null) {
return false;
}
return jsonObject.get("success").getAsBoolean();
}
public ResponseUtils(String jsonStr) {
super();
// this.jsonStr = jsonStr;
if (jsonStr != null) {
jsonStr = jsonStr.trim();
}
JsonReader reader = new JsonReader(new StringReader(jsonStr));
reader.setLenient(true);
try {
jsonObject = gson.fromJson(reader, JsonObject.class);
} catch (Exception e) {
e.printStackTrace();
jsonObject = null;
}finally {
try {
if(reader!=null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public boolean isExipired() {
if (jsonObject == null || jsonObject.get("code") == null) {
return true;
}
return jsonObject.get("code").getAsInt() == 600;
}
public boolean isSucess() {
if (jsonObject == null || jsonObject.get("result") == null) {
return false;
}
return jsonObject.get("result").getAsBoolean();
}
public int getResponseCode() {
return jsonObject.get("code").getAsInt();
}
public <T> T onFailedModel(Class<T> faild) {
if (jsonObject == null || jsonObject.get("result") == null) {
return null;
}
JsonReader reader = new JsonReader(new StringReader(jsonObject.get("result").toString()));
reader.setLenient(true);
try {
return gson.fromJson(reader, faild);
} catch (Exception e) {
e.printStackTrace();
return null;
}finally {
try {
// jsonObject=null;
if(reader!=null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 不是数组的泛型
*/
public <T> T onSuccessModel(Class<T> success) {
if (jsonObject == null || jsonObject.get("result") == null) {
return null;
}
JsonReader reader = new JsonReader(new StringReader(jsonObject.get("result").toString()));
reader.setLenient(true);
try {
return gson.fromJson(reader, success);
} catch (Exception e) {
e.printStackTrace();
return null;
}finally {
try {
// jsonObject=null;
if(reader!=null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 带数组的泛型
*/
public <T> T onSuccessModel(Type typeOfT) {
if (jsonObject == null || jsonObject.get("result") == null) {
return null;
}
JsonReader reader = new JsonReader(new StringReader(jsonObject.get("result").toString()));
reader.setLenient(true);
try {
return gson.fromJson(reader, typeOfT);
} catch (Exception e) {
e.printStackTrace();
Log.e("JsonFormatError", jsonObject.get("result").toString());
return null;
}finally {
try {
// jsonObject=null;
if(reader!=null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Deserialize a json to a arrayList
*/
public <T> ArrayList<T> deserializeToList(Class<T> clazz) {
if (jsonObject == null || jsonObject.get("result") == null) {
return null;
}
JsonReader reader = new JsonReader(new StringReader(jsonObject.get("result").toString()));
reader.setLenient(true);
try {
Type type = new ListParameterizedType(clazz);
return gson.fromJson(reader, type);
} catch (Exception e) {
e.printStackTrace();
Log.e("JsonFormatError", jsonObject.get("result").toString());
return null;
}finally {
try {
// jsonObject=null;
if(reader!=null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public <T> ArrayList<T> deserializeToList(Class<T> clazz,String json) {
JsonReader reader = new JsonReader(new StringReader(json));
reader.setLenient(true);
try {
Type type = new ListParameterizedType(clazz);
return gson.fromJson(reader, type);
} catch (Exception e) {
e.printStackTrace();
return null;
}finally {
try {
if(reader!=null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}