У меня возникла проблема с возвращаемым значением после запроса на отправку, строка ответа содержит запрошенный текст JSON, но dataBean имеет значение null?Java Bean Возвращаемое значение Null
@Override
public wDataBean doInBackground(Void... params) {
wDataBean dataBean = new wDataBean();
try {
Response response = client.newCall(request).execute();
String responseString = response.body().string();
JSONObject jsonObject = new JSONObject(responseString);
Gson gson = new Gson();
dataBean = gson.fromJson(jsonObject.toString(), wDataBean.class);
}
catch (final IOException e)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
}
});
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
}
return dataBean;
}
Это пример ответа:
{ "IsOK":true,
"Response":"Logged in successfully",
"MyArray":{ "user":"35",
"email":"[email protected]",
"img":"https:\/\/www.mywebsite.com\/uploads\/136_image.png",
"fname":"First Name",
"lname":"Last Name",
"myToken":
{
"auth":"xyzxyzyxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz",
"expiry":"1980-01-01 00:00:00"
}
},
"myToken":{}
}
wDataBean.java
public class wDataBean {
private Main1 main;
public Main1 getMain() {return main;}
public void setMain(Main1 main) {this.main = main;}
class Main1 {
boolean IsOK;
String Response;
JSONArray MyArray;
int user;
String email;
String img;
String fname;
String lname;
JSONArray myToken;
String auth;
Date expiry;
public boolean isOK() {return isOK();}
public int getUser() {return user;}
public JSONArray getMyArray() {return MyArray;}
public String getEmail() {return email;}
public String getImg() {return img;}
public String getResponse() {return Response;}
public Date getExpiry() {return expiry;}
public JSONArray getMyToken() {return myToken;}
public String getAuth() {return auth;}
public String getFname() {return fname;}
public String getLname() {return lname;}
public void setAuth(String auth) {this.auth = auth;}
public void setEmail(String email) {this.email = email;}
public void setExpiry(Date expiry) {this.expiry = expiry;}
public void setFname(String fname) {this.fname = fname;}
public void setImg(String img) {this.img = img;}
public void setLname(String lname) {this.lname = lname;}
public void setMyArray(JSONArray myArray) {MyArray = myArray;}
public void setMyToken(JSONArray myToken) {this.myToken = myToken;}
public void setOK(boolean OK) {IsOK = OK;}
public void setResponse(String response) { Response = response;}
public void setUser(int user) { this.user = user;}
}
}
Цель состоит в том, чтобы получить "авторизацию" и "expiry" от myToken
ли пошагового с помощью отладчика раскрыть что-нибудь? – nasch
Одна из возможных проблем заключается в том, что [объект может быть глубже в иерархии] (http://stackoverflow.com/questions/16210787/gson-fromjson-returns-object-with-null-attrubutes#answer-16211537). И есть и другие возможности. Вы должны добавить пример ответа JSON на ваш вопрос. –
@nasch: строка ответа в порядке, и она находится в формате json, но dataBean имеет значение null! –