// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/model/ActivateCode.java
// public class ActivateCode implements Serializable {
// 
//     private String mt;
//     private String mid;
// 
//     public String getMt() {
//         return mt;
//     }
// 
//     public void setMt(String mt) {
//         this.mt = mt;
//     }
// 
//     public String getMid() {
//         return mid;
//     }
// 
//     public void setMid(String mid) {
//         this.mid = mid;
//     }
// }
// 
// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/model/DeviceItem.java
// public class DeviceItem implements Serializable {
//     private String id;
//     private String title;
//     private String desc;
//     @SerializedName("private")
//     private boolean isPrivate;
//     private String protocol = "HTTP";
//     private boolean online;
//     private Location location;
//     @SerializedName("create_time")
//     private String createTime;
//     @SerializedName("auth_info")
//     private String authInfo;
//     @SerializedName("activite_code")
//     private ActivateCode activateCode;
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getTitle() {
//         return title;
//     }
// 
//     public void setTitle(String title) {
//         this.title = title;
//     }
// 
//     public String getDesc() {
//         return desc;
//     }
// 
//     public void setDesc(String desc) {
//         this.desc = desc;
//     }
// 
//     public boolean isPrivate() {
//         return isPrivate;
//     }
// 
//     public void setPrivate(boolean aPrivate) {
//         isPrivate = aPrivate;
//     }
// 
//     public String getProtocol() {
//         return protocol;
//     }
// 
//     public void setProtocol(String protocol) {
//         this.protocol = protocol;
//     }
// 
//     public boolean isOnline() {
//         return online;
//     }
// 
//     public void setOnline(boolean online) {
//         this.online = online;
//     }
// 
//     public Location getLocation() {
//         return location;
//     }
// 
//     public void setLocation(Location location) {
//         this.location = location;
//     }
// 
//     public String getCreateTime() {
//         return createTime;
//     }
// 
//     public void setCreateTime(String createTime) {
//         this.createTime = createTime;
//     }
// 
//     public String getAuthInfo() {
//         return authInfo;
//     }
// 
//     public void setAuthInfo(String authInfo) {
//         this.authInfo = authInfo;
//     }
// 
//     public ActivateCode getActivateCode() {
//         return activateCode;
//     }
// 
//     public void setActivateCode(ActivateCode activateCode) {
//         this.activateCode = activateCode;
//     }
// }
// 
// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/model/Location.java
// public class Location implements Serializable {
// 
//     private String lon;
//     private String lat;
// 
//     public String getLon() {
//         return lon;
//     }
// 
//     public void setLon(String lon) {
//         this.lon = lon;
//     }
// 
//     public String getLat() {
//         return lat;
//     }
// 
//     public void setLat(String lat) {
//         this.lat = lat;
//     }
// }


import com.chinamobile.iot.onenet.sdksample.model.ActivateCode;
import com.chinamobile.iot.onenet.sdksample.model.DeviceItem;
import com.chinamobile.iot.onenet.sdksample.model.Location;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import java.lang.reflect.Type;
        JsonElement desc = jsonObject.get("desc");
        deviceItem.setDesc(desc != null ? desc.getAsString() : "");
        JsonElement isPrivate = jsonObject.get("private");
        deviceItem.setPrivate(isPrivate != null ? isPrivate.getAsBoolean() : true);
        JsonElement protocol = jsonObject.get("protocol");
        deviceItem.setProtocol(protocol != null ? protocol.getAsString() : "HTTP");
        deviceItem.setOnline(jsonObject.get("online").getAsBoolean());
        JsonElement locationElement = jsonObject.get("location");
        if (locationElement != null) {
            JsonObject locationObject = locationElement.getAsJsonObject();
            if (locationObject != null) {
                Location location = new Location();
                location.setLat(locationObject.get("lat").getAsString());
                location.setLon(locationObject.get("lon").getAsString());
                deviceItem.setLocation(location);
            }
        }
        deviceItem.setCreateTime(jsonObject.get("create_time").getAsString());
        JsonElement authInfo = jsonObject.get("auth_info");
        if (authInfo != null) {
            if (authInfo.isJsonObject()) {
                deviceItem.setAuthInfo(authInfo.getAsJsonObject().toString());
            } else {
                deviceItem.setAuthInfo(authInfo.getAsString());
            }
        }
        JsonElement activateCodeElement = jsonObject.get("activate_code");
        if (activateCodeElement != null) {
            JsonObject activateCodeObject = activateCodeElement.getAsJsonObject();
            if (activateCodeObject != null) {
// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/model/ActivateCode.java
// public class ActivateCode implements Serializable {
// 
//     private String mt;
//     private String mid;
// 
//     public String getMt() {
//         return mt;
//     }
// 
//     public void setMt(String mt) {
//         this.mt = mt;
//     }
// 
//     public String getMid() {
//         return mid;
//     }
// 
//     public void setMid(String mid) {
//         this.mid = mid;
//     }
// }
// 
// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/model/DeviceItem.java
// public class DeviceItem implements Serializable {
//     private String id;
//     private String title;
//     private String desc;
//     @SerializedName("private")
//     private boolean isPrivate;
//     private String protocol = "HTTP";
//     private boolean online;
//     private Location location;
//     @SerializedName("create_time")
//     private String createTime;
//     @SerializedName("auth_info")
//     private String authInfo;
//     @SerializedName("activite_code")
//     private ActivateCode activateCode;
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getTitle() {
//         return title;
//     }
// 
//     public void setTitle(String title) {
//         this.title = title;
//     }
// 
//     public String getDesc() {
//         return desc;
//     }
// 
//     public void setDesc(String desc) {
//         this.desc = desc;
//     }
// 
//     public boolean isPrivate() {
//         return isPrivate;
//     }
// 
//     public void setPrivate(boolean aPrivate) {
//         isPrivate = aPrivate;
//     }
// 
//     public String getProtocol() {
//         return protocol;
//     }
// 
//     public void setProtocol(String protocol) {
//         this.protocol = protocol;
//     }
// 
//     public boolean isOnline() {
//         return online;
//     }
// 
//     public void setOnline(boolean online) {
//         this.online = online;
//     }
// 
//     public Location getLocation() {
//         return location;
//     }
// 
//     public void setLocation(Location location) {
//         this.location = location;
//     }
// 
//     public String getCreateTime() {
//         return createTime;
//     }
// 
//     public void setCreateTime(String createTime) {
//         this.createTime = createTime;
//     }
// 
//     public String getAuthInfo() {
//         return authInfo;
//     }
// 
//     public void setAuthInfo(String authInfo) {
//         this.authInfo = authInfo;
//     }
// 
//     public ActivateCode getActivateCode() {
//         return activateCode;
//     }
// 
//     public void setActivateCode(ActivateCode activateCode) {
//         this.activateCode = activateCode;
//     }
// }
// 
// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/model/Location.java
// public class Location implements Serializable {
// 
//     private String lon;
//     private String lat;
// 
//     public String getLon() {
//         return lon;
//     }
// 
//     public void setLon(String lon) {
//         this.lon = lon;
//     }
// 
//     public String getLat() {
//         return lat;
//     }
// 
//     public void setLat(String lat) {
//         this.lat = lat;
//     }
// }


// Path: app/src/main/java/com/chinamobile/iot/onenet/sdksample/utils/DeviceItemDeserializer.java
import com.chinamobile.iot.onenet.sdksample.model.ActivateCode;
import com.chinamobile.iot.onenet.sdksample.model.DeviceItem;
import com.chinamobile.iot.onenet.sdksample.model.Location;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import java.lang.reflect.Type;

        JsonElement desc = jsonObject.get("desc");
        deviceItem.setDesc(desc != null ? desc.getAsString() : "");
        JsonElement isPrivate = jsonObject.get("private");
        deviceItem.setPrivate(isPrivate != null ? isPrivate.getAsBoolean() : true);
        JsonElement protocol = jsonObject.get("protocol");
        deviceItem.setProtocol(protocol != null ? protocol.getAsString() : "HTTP");
        deviceItem.setOnline(jsonObject.get("online").getAsBoolean());
        JsonElement locationElement = jsonObject.get("location");
        if (locationElement != null) {
            JsonObject locationObject = locationElement.getAsJsonObject();
            if (locationObject != null) {
                Location location = new Location();
                location.setLat(locationObject.get("lat").getAsString());
                location.setLon(locationObject.get("lon").getAsString());
                deviceItem.setLocation(location);
            }
        }
        deviceItem.setCreateTime(jsonObject.get("create_time").getAsString());
        JsonElement authInfo = jsonObject.get("auth_info");
        if (authInfo != null) {
            if (authInfo.isJsonObject()) {
                deviceItem.setAuthInfo(authInfo.getAsJsonObject().toString());
            } else {
                deviceItem.setAuthInfo(authInfo.getAsString());
            }
        }
        JsonElement activateCodeElement = jsonObject.get("activate_code");
        if (activateCodeElement != null) {
            JsonObject activateCodeObject = activateCodeElement.getAsJsonObject();
            if (activateCodeObject != null) {
                ActivateCode activateCode = new ActivateCode();