【发布时间】:2016-01-18 03:25:56
【问题描述】:
*编辑:
所以我问过 PHP 专家,是的,他忘记在他的代码中写 "fullname" 字符串。对不起我的错误。
我是 Java Android 的新手,所以对这段代码有点困惑。我想要做的是获得价值,但它总是在 Android Studio 中出现这个错误:
W/System.err: org.json.JSONException: No value for fullname
W/System.err: at org.json.JSONObject.get(JSONObject.java:355)
W/System.err: at org.json.JSONObject.getString(JSONObject.java:515)
W/System.err: at com.skafen.bayarin.ServerRequests$fetchUserDataAsyncTask.doInBackground(ServerRequests.java:130)
W/System.err: at com.skafen.bayarin.ServerRequests$fetchUserDataAsyncTask.doInBackground(ServerRequests.java:93)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err: at java.lang.Thread.run(Thread.java:841)
而java是:
public class fetchUserDataAsyncTask extends AsyncTask<Void, Void, User> { //line #93
User user;
GetUserCallback userCallback;
public fetchUserDataAsyncTask(User user, GetUserCallback userCallback) {
this.user = user;
this.userCallback = userCallback;
}
@Override
protected User doInBackground(Void... params) {
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("username", user.username));
dataToSend.add(new BasicNameValuePair("password", user.password));
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);
HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS + "FetchUserData.php");
User returnedUser = null;
try {
post.setEntity(new UrlEncodedFormEntity(dataToSend));
HttpResponse httpResponse = client.execute(post);
HttpEntity entity = httpResponse.getEntity();
String result = EntityUtils.toString(entity);
JSONObject jObject = new JSONObject(result);
if (jObject.length() == 0 ){
returnedUser = null;
}else {
String fullname = jObject.getString("fullname"); //line #130
int birthday = jObject.getInt("birthday");
String email = jObject.getString("email");
returnedUser = new User(fullname, birthday, email, user.username, user.password);
}
}catch (Exception e){
e.printStackTrace();
}
return returnedUser;
}
@Override
protected void onPostExecute(User returnedUser) {
progressDialog.dismiss();
userCallback.done(returnedUser);
super.onPostExecute(returnedUser);
}
}
感谢您的关注,如果我发布具有相同主题的新帖子,我深表歉意,因为我是新来的。
谢谢。
【问题讨论】:
-
那么,JSON 是否包含全名?打印
result查看 -
是的,我们需要json字符串,请发布
-
我不明白你的意思,抱歉我的英语不好。
-
打印变量
jObject并将其添加到您的问题中