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