Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我无法将JSON转换为类<;T>;使用GSON_Java_Android_Gson_Retrofit - Fatal编程技术网

Java 我无法将JSON转换为类<;T>;使用GSON

Java 我无法将JSON转换为类<;T>;使用GSON,java,android,gson,retrofit,Java,Android,Gson,Retrofit,我正在我的项目中使用翻新库。该库使用Gson库从JSON转换数据。我有个问题。我需要转换泛型类 public class RestResponse<T> { private RestError error; private T response; public RestError getError() { return error; } public void setError(RestError error) {

我正在我的项目中使用翻新库。该库使用Gson库从JSON转换数据。我有个问题。我需要转换泛型类

public class RestResponse<T> {
    private RestError error;
    private T response;

    public RestError getError() {
        return error;
    }

    public void setError(RestError error) {
        this.error = error;
    }

    public T getResponse() {
        return response;
    }

    public void setResponse(T response) {
        this.response = response;
    }

    public static class RestError {
        private int code;
        private String message;

        public int getCode() {
            return code;
        }

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

        public String getMessage() {
            return message;
        }

        public void setMessage(String message) {
            this.message = message;
        }
    }
}
以及由此产生的错误:

03-02 14:43:43.781  23582-23582/com.skip.client.customer E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.skip.client.customer, PID: 23582
    java.lang.NullPointerException
            at com.skip.client.connector.UserApiConnector$3.success(UserApiConnector.java:67)
            at com.skip.client.connector.UserApiConnector$3.success(UserApiConnector.java:63)
            at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5748)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
添加用户:

@Table(name = "Users")
public class User extends Model {

    @Expose
    @Column(name = "uuid")
    @SerializedName("uuid")
    private String uuid;

    @Expose
    @Column(name = "userInfo")
    @SerializedName("userInfo")
    private UserInfo userInfo;

    @Expose
    @Column(name = "balancedCustomer")
    @SerializedName("balancedCustomer")
    private BalancedCustomer balancedCustomer;

    @Expose
    @Column(name = "session")
    @SerializedName("session")
    private Session session;

    @Expose
    @Column(name = "accountTypeId")
    @SerializedName("accountTypeId")
    private Integer accountTypeId;

    @Expose
    @Column(name = "pushToken")
    @SerializedName("pushToken")
    private PushToken pushToken;

    public User() {
        super();
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public Session getSession() {
        return session;
    }

    public void setSession(Session session) {
        this.session = session;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public PushToken getPushToken() {
        return pushToken;
    }

    public void setPushToken(PushToken pushToken) {
        this.pushToken = pushToken;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getUuid() {
        return uuid;
    }

    public BalancedCustomer getBalancedCustomer() {
        return balancedCustomer;
    }

    public void setBalancedCustomer(BalancedCustomer balancedCustomer) {
        this.balancedCustomer = balancedCustomer;
    }

    public AccountType getAccountType() {
        return AccountType.getById(accountTypeId);
    }

    public void setAccountType(AccountType accountTypeCode) {
        this.accountTypeId = accountTypeCode.code();
    }
}

如果您的响应成功,是否
restreponse.getError()
返回null

@Override
public void success(RestResponse<User> restResponse, Response response) {
  //Log.d("132", "" + restResponse.getError().getCode());
}
@覆盖
public void成功(Response Response,Response Response){
//Log.d(“132”和“+response.getError().getCode());
}

从当前stacktrace来看,似乎不是Gson的问题,您可以添加用户类的详细信息吗?
{
    "response": {
        "id": 1,
        "uuid": "nPUihPzHAqXLDn8EUj6",
        "userInfo": {
            "id": 1,
            "email": "Test@gmail.com",
            "firstName": "Jacob",
            "lastName": "Dodson",
            "facebookId": "139505288080"
        },
        "session": {
            "id": 1,
            "session": "aa4hnvVBFk1gLTqEsL7RJEYQ",
            "expirationDate": 1425890619898
        },
        "pushToken": {
            "id": 1,
            "token": "APA91bHH-UzWYySOqUVK2PnIDBHqFDAzIKRH6s04sGSuc",
            "platformCode": 1
        }
    }
}
03-02 14:43:43.781  23582-23582/com.skip.client.customer E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.skip.client.customer, PID: 23582
    java.lang.NullPointerException
            at com.skip.client.connector.UserApiConnector$3.success(UserApiConnector.java:67)
            at com.skip.client.connector.UserApiConnector$3.success(UserApiConnector.java:63)
            at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5748)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
@Table(name = "Users")
public class User extends Model {

    @Expose
    @Column(name = "uuid")
    @SerializedName("uuid")
    private String uuid;

    @Expose
    @Column(name = "userInfo")
    @SerializedName("userInfo")
    private UserInfo userInfo;

    @Expose
    @Column(name = "balancedCustomer")
    @SerializedName("balancedCustomer")
    private BalancedCustomer balancedCustomer;

    @Expose
    @Column(name = "session")
    @SerializedName("session")
    private Session session;

    @Expose
    @Column(name = "accountTypeId")
    @SerializedName("accountTypeId")
    private Integer accountTypeId;

    @Expose
    @Column(name = "pushToken")
    @SerializedName("pushToken")
    private PushToken pushToken;

    public User() {
        super();
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public Session getSession() {
        return session;
    }

    public void setSession(Session session) {
        this.session = session;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public PushToken getPushToken() {
        return pushToken;
    }

    public void setPushToken(PushToken pushToken) {
        this.pushToken = pushToken;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getUuid() {
        return uuid;
    }

    public BalancedCustomer getBalancedCustomer() {
        return balancedCustomer;
    }

    public void setBalancedCustomer(BalancedCustomer balancedCustomer) {
        this.balancedCustomer = balancedCustomer;
    }

    public AccountType getAccountType() {
        return AccountType.getById(accountTypeId);
    }

    public void setAccountType(AccountType accountTypeCode) {
        this.accountTypeId = accountTypeCode.code();
    }
}
@Override
public void success(RestResponse<User> restResponse, Response response) {
  //Log.d("132", "" + restResponse.getError().getCode());
}