package net.oschina.app.bean; import java.io.Serializable; import net.oschina.app.AppException; import org.json.JSONException; import org.json.JSONObject; /** * 二维码扫描实体类 * * @author 火蚁 (http://my.oschina.net/LittleDY) * @version 1.0 * @created 2014-3-17 */ @SuppressWarnings("serial") public class Barcode extends Entity implements Serializable { public final static String NODE_REQURE_LOGIN = "require_login"; public final static String NODE_TYPE = "type"; public final static String NODE_URL = "url"; public final static String NODE_TITLE = "title"; public final static byte LOGIN_IN = 0x00;// 登录 public final static byte SIGN_IN = 0x01;// 签到 private boolean requireLogin;// 是否需要登录 private int type;// 类型 private String url;// url地址 private String title;// 标题 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public boolean isRequireLogin() { return requireLogin; } public void setRequireLogin(boolean requireLogin) { this.requireLogin = requireLogin; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public static Barcode parse(String barCodeString) throws AppException { Barcode barCode = new Barcode(); try { // 由字符串创建json对象 JSONObject jsonObject = new JSONObject(barCodeString); // 取数据操作 if (!jsonObject.isNull(NODE_REQURE_LOGIN)) { barCode.setRequireLogin(jsonObject.getBoolean(NODE_REQURE_LOGIN)); } else { barCode.setUrl("www.oschina.net"); } if (!jsonObject.isNull(NODE_TYPE)) { barCode.setType(jsonObject.getInt(NODE_TYPE)); } else { barCode.setType(1); } if (!jsonObject.isNull(NODE_URL)) { barCode.setUrl(jsonObject.getString(NODE_URL)); } else { barCode.setUrl("www.oschina.net"); } if (!jsonObject.isNull(NODE_TITLE)) { barCode.setTitle(jsonObject.getString(NODE_TITLE)); } else { barCode.setTitle(""); } } catch (JSONException e) { // 抛出一个json解析错误的异常 throw AppException.json(e); } return barCode; } @Override public String toString() { return "Barcode [requireLogin=" + requireLogin + ", type=" + type + ", url=" + url + "]"; } }