解析okHttp响应时,GSON返回null

时间:2016-03-09 20:05:09

标签: java android json gson

我正在尝试使用Gson解析okHttp响应。 这是JSON响应:

{
    "code": 200,
    "message": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e.",
    "data": {
        "id": "14",
        "name": "",
        "sname": "",
        "phone": "9274036079",
        "email": "",
        "org_name": "",
        "is_entity": "0",
        "city_name": "",
        "franchise_id": "0",
        "inn": "",
        "type_id": "2",
        "inviter_id": "0",
        "activate": "0000-00-00 00:00:00",
        "create": "2016-03-09 13:43:05",
        "necessities": {
            "needly_profile": true,
            "needly_vehicle": true
        },
        "access": {
            "user_set": true
        },
        "inviter_name": ""
    }
}

这是请求和解析响应的方法

private void requestUser(String token) {
    final Request request = new Request.Builder()
        .url("http://sapron.uveee.ru/api/user/get")
        .header("Authorization", token)
        .build();

    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            Log.i("FAILURE", e.toString());
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            Gson gson = new GsonBuilder().create();
            Log.i("test", "onResponse: "+gson.fromJson(response.body().charStream(), User.class).getUserdata()); //HERE WE CRASH
        }
    });
}

我的模特课

public class User {
    int code;
    String message;
    UserData data;

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public UserData getUserdata() {
        return data;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public void setUserdata(UserData data) {
        this.data = data;
    }
}

UserData类

    public class UserData {

    String id,name,sname,phone,email,org_name,is_entity,city_name,franchise_id,inn,type_id,inviter_id,activate,create,inviter_name;
    boolean can_change;
    UserNecessities necessities;
    UserAccess userAccess;

    public String getId() {
        return id;
    }
    public String getName() {
        return name;
    }
    public String getSname() {
        return sname;
    }
    public String getPhone() {
        return phone;
    }
    public String getEmail() {
        return email;
    }
    public String getOrg_name() {
        return org_name;
    }
    public String getIs_entity() {
        return is_entity;
    }
    public String getFranchise_id() {
        return franchise_id;
    }
    public String getInn() {
        return inn;
    }
    public String getType_id() {
        return type_id;
    }
    public String getInviter_id() {
        return inviter_id;
    }
    public String getActivate() {
        return activate;
    }
    public String getCreate() {
        return create;
    }
    public String getInviter_name() {
        return inviter_name;
    }
    public boolean isCan_change() {
        return can_change;
    }

    public UserNecessities getNecessities() {
        return necessities;
    }

    public String getCity_name() {
        return city_name;
    }
    public UserAccess getUserAccess() {
        return userAccess;
    }
    public void setUserAccess(UserAccess userAccess) {
        this.userAccess = userAccess;
    }
    public void setId(String id) {
        this.id = id;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public void setOrg_name(String org_name) {
        this.org_name = org_name;
    }
    public void setIs_entity(String is_entity) {
        this.is_entity = is_entity;
    }
    public void setFranchise_id(String franchise_id) {
        this.franchise_id = franchise_id;
    }
    public void setInn(String inn) {
        this.inn = inn;
    }
    public void setType_id(String type_id) {
        this.type_id = type_id;
    }
    public void setInviter_name(String inviter_name) {
        this.inviter_name = inviter_name;
    }
    public void setInviter_id(String inviter_id) {
        this.inviter_id = inviter_id;
    }
    public void setCreate(String create) {
        this.create = create;
    }
    public void setActivate(String activate) {
        this.activate = activate;
    }
    public void setNecessities(UserNecessities necessities) {
        this.necessities = necessities;
    }
    public void setCan_change(boolean can_change) {
        this.can_change = can_change;
    }
    public void setCity_name(String city_name) {
        this.city_name = city_name;
    }
}

我已经做了很少的GSON解析,但我现在无法得到我现在做的错误。感谢。

1 个答案:

答案 0 :(得分:1)

我不知道您的json数据是否正确。

但你可以试试这个,希望这会对你有所帮助

User user = new Gson().fromJson(response.body().charStream(), User.class);
相关问题