鉴于json数据传输的使用,可以在实体类基础上设计基类
public abstract class BaseModel implements Serializable{
private static final long serialVersionUID=1L;
//==============json===============//
/**
* 从JSONObject中读取字段
* @param obj
*/
public BaseModel parseJson(JSONObject obj){
return this;
}
/**
* 从json中读取字段
* @param json
* @throws JSONException
*/
public BaseModel parseJson(String json) throws JSONException{
return parseJson(new JSONObject(json));
}
/**
* 转成JSONObject
* @throws JSONException
*/
public JSONObject toJSONObject() throws JSONException{
return new JSONObject();
}
/**
* 转成json格式
* @throws JSONException
*/
public String toJSON() throws JSONException{
return toJSONObject().toString();
}
@Override
public String toString() {
try {
return toJSON();
} catch (JSONException e) {
}
return "";
}
/**
* 判断字符串是否为空
* @param str
* @return true - 全为空, false - 有一个不为空
*/
public static boolean isEmpty(String ...str){
if (str == null) return true;
for (int i=0;i<str.length;i++)
if (str[i]!=null && !"".equals(str[i]))return false;
return true;
}
}
实体类使用时继承即可
public class Model extends BaseModel implements Cloneable{
private String aa=null;
private String bb=null;
private String cc=null;
public String getAa() {
return aa;
}
public String getBb() {
return bb;
}
public String getCc() {
return cc;
}
//==============json=============//
@Override
public Model parseJson(JSONObject obj) {
aa=obj.optString("aa");
bb=obj.optString("bb");
cc=obj.optString("cc");
return this;
}
@Override
public JSONObject toJSONObject() throws JSONException {
JSONObject o=new JSONObject();
o.put("aa", aa);
o.put("bb", bb);
o.put("cc", cc);
return o;
}
public Model getClone(){
try {
return (Model)this.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return null;
}
}