【发布时间】:2020-07-18 04:59:52
【问题描述】:
我想改造以获取用户的帐户。 当我发送一个令牌(请求)然后得到下面 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();
}
});
}
【问题讨论】:
-
请检查我的回答,如果对你有帮助,请告诉我