Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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
如何在Android中通过改造获得内部JSON对象?(不是数组)_Android_Json_Retrofit - Fatal编程技术网

如何在Android中通过改造获得内部JSON对象?(不是数组)

如何在Android中通过改造获得内部JSON对象?(不是数组),android,json,retrofit,Android,Json,Retrofit,我想改装以获得用户的帐户。 当我发送一个令牌(请求)时,就会得到json下面的响应 { "resultCode": 200, "resultData": { "user": { "uid": 154, "email": "test11@testtesttest.com

我想改装以获得用户的帐户。 当我发送一个令牌(请求)时,就会得到json下面的响应

 {
        "resultCode": 200,
        "resultData": {
            "user": {
                "uid": 154,
                "email": "test11@testtesttest.com",
                "nickname": "0717",
                "profilepath": "profilepath.jpg",
                "password": "password",
                "registed_dt": "2020-07-01 00:00:00",
                "updated_dt": "2020-07-17 06:13:07",
                "secession": "N",
                "noti_state": "N"
            }
        },
        "message": "Success"
    }
我已经进去了”http://www.jsonschema2pojo.org/“并使类关于SerializedName

public class ApiResultDto {
    @SerializedName("resultCode")
    private int resultCode;
    @SerializedName("resultData")
    private JsonObject resultData; 
    @SerializedName("message")
    private String message;

    public int getResultCode(){
        return resultCode;
    }

    ...

    public static class ResultData {
        @SerializedName("user")
        private User user;

        public User getUser() {
            return user;
        }
    }
    public static class User {
        @SerializedName("uid")
        @Expose
        private Integer uid;
        @SerializedName("email")
        @Expose
        private String email;
        @SerializedName("nickname")
        ...
        
        public String getEmail() {
            return email;
        }

        public String getNickname() {
            return nickname;
        }

        ...
    }
}
然而,我不能得到一个昵称和电子邮件

error : java.lang.String com.google.gson.JsonObject.getAsString()
我不知道如何获取电子邮件和昵称值

private void getUser() {
        
        getToken = userPreference.getInstance().getString(Config.KEY_TOKEN);
        RetrofitInterface retrofitInterface = RetrofitClient.buildHTTPClient();
        Call<ApiResultDto> call = retrofitInterface.account(getToken);

        UserPreference.getInstance().putString(Config.KEY_TOKEN, getToken);

        call.enqueue(new Callback<ApiResultDto>() {
            public void onResponse(Call<ApiResultDto> call, Response<ApiResultDto> response) {
                if (response.isSuccessful()) {
                    if (resultData != null) {
                        apiResultDto = response.body();
                        String userEmail =  apiResultDto.getResultData().get("email").getAsString();
                        String userNickName = apiResultDto.getResultData().get("nickname").getAsString();
 
                     } else {
                        Log.e("getUser", "Account null ");
                    }


                    if (getToken != null) {


                    }
                    Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<ApiResultDto> call, Throwable t) {
                Toast.makeText(getApplication(), "Fail", Toast.LENGTH_SHORT).show();

            }

        });
    }
private void getUser(){
getToken=userPreference.getInstance().getString(Config.KEY\u令牌);
RefundationInterface-RefundationInterface=RefundationClient.buildHTTPClient();
Call Call=interface.account(getToken);
UserPreference.getInstance().putString(Config.KEY\u标记,getToken);
call.enqueue(新回调(){
公共void onResponse(调用、响应){
if(response.issusccessful()){
if(resultData!=null){
apisultdto=response.body();
字符串userEmail=apireultdto.getResultData().get(“email”).getAsString();
字符串user昵称=APIRESHTTO.getResultData().get(“昵称”).getAsString();
}否则{
Log.e(“getUser”、“帐户空”);
}
if(getToken!=null){
}
Toast.makeText(getApplicationContext(),“Success”,Toast.LENGTH\u SHORT.show();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(getApplication(),“Fail”,Toast.LENGTH_SHORT.show();
}
});
}

而不是
私有JsonObject resultData
try
private ResultData ResultData

public class ApiResultDto{

@SerializedName("resultData")
private ResultData resultData;

@SerializedName("resultCode")
private int resultCode;

@SerializedName("message")
private String message;

public ResultData getResultData(){
    return resultData;
}

public int getResultCode(){
    return resultCode;
}

public String getMessage(){
    return message;
}
}


public class ResultData{

@SerializedName("user")
private User user;

public User getUser(){
    return user;
}
}


public class User{

@SerializedName("noti_state")
private String notiState;

@SerializedName("uid")
private int uid;

@SerializedName("password")
private String password;

@SerializedName("secession")
private String secession;

@SerializedName("updated_dt")
private String updatedDt;

@SerializedName("nickname")
private String nickname;

@SerializedName("registed_dt")
private String registedDt;

@SerializedName("profilepath")
private String profilepath;

@SerializedName("email")
private String email;

public String getNotiState(){
    return notiState;
}

public int getUid(){
    return uid;
}

public String getPassword(){
    return password;
}

public String getSecession(){
    return secession;
}

public String getUpdatedDt(){
    return updatedDt;
}

public String getNickname(){
    return nickname;
}

public String getRegistedDt(){
    return registedDt;
}

public String getProfilepath(){
    return profilepath;
}

public String getEmail(){
    return email;
}
}
onResponse()
中:

public void onResponse(调用、响应){
if(response.issusccessful()){
if(resultData!=null){
apisultdto=response.body();
字符串userEmail=apireultdto.getResultData().getUser().getEmail();
字符串userNickName=apireultdto.getResultData().getUser().getNickname();
}否则{
Log.e(“getUser”、“帐户空”);
}
if(getToken!=null){
}
Toast.makeText(getApplicationContext(),“Success”,Toast.LENGTH\u SHORT.show();
}
}

请检查我的答案,如果对您有帮助,请告诉我
public void onResponse(Call<ApiResultDto> call, Response<ApiResultDto> response) {
            if (response.isSuccessful()) {
                if (resultData != null) {
                    apiResultDto = response.body();
                    String userEmail =  apiResultDto.getResultData().getUser().getEmail();
                    String userNickName = apiResultDto.getResultData().getUser().getNickname();

                 } else {
                    Log.e("getUser", "Account null ");
                }


                if (getToken != null) {


                }
                Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show();
            }
        }