返回null的JSON对象(android+;JSON+;php+;mysql)
我有一张登记表,我正在做飞行验证。 在用户将焦点从email字段切换到off之后,我想检查数据库中是否注册了此类电子邮件,并为此干杯。 但是,无论我做什么,我总是在第585行得到一个空指针异常,这是下面的一行:返回null的JSON对象(android+;JSON+;php+;mysql),php,android,mysql,json,rest,Php,Android,Mysql,Json,Rest,我有一张登记表,我正在做飞行验证。 在用户将焦点从email字段切换到off之后,我想检查数据库中是否注册了此类电子邮件,并为此干杯。 但是,无论我做什么,我总是在第585行得到一个空指针异常,这是下面的一行: Log.d("Checking wether this email exists in database", json.toString()); 事情是这样的: class CheckWetherAUserWithSuchEmailExists extends AsyncTask<
Log.d("Checking wether this email exists in database", json.toString());
事情是这样的:
class CheckWetherAUserWithSuchEmailExists extends AsyncTask<String, String, String> {
int success;
@Override
protected String doInBackground(String... args) {
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
Log.d("Kylie", userEmail);
params.add(new BasicNameValuePair("user_email", userEmail));
Log.d("request!", "starting");
// Posting user data to script
JSONObject json = jsonParser.makeHttpRequest(CHECK_EMAIL_EXISTS_URL, "POST", params);
// full json response
Log.d("Checking wether this email exists in database", json.toString());
// json success element
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Email exists", json.toString());
finish(); //fire up an alarm
userWithTheSameEmail = true;
return json.getString(TAG_MESSAGE);
} else if(success == 2) {
Log.d("Email doesnt exist", json.getString(TAG_MESSAGE));
userWithTheSameEmail = false;
return json.getString(TAG_MESSAGE);
} else {
Log.d("Something happened", json.getString(TAG_MESSAGE));
userWithTheSameEmail = false;
return json.getString(TAG_MESSAGE);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
这是错误堆栈跟踪:
D/Kylie(4458): hdhdu@jfjd.com
D/request!(4458): starting
Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
threadid=9: thread exiting with uncaught exception (group=0x4001e578)
FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
Caused by: java.lang.NullPointerException
net.asdasd.activities.Signup$CheckWetherAUserWithSuchEmailExists.doInBackground(Signup.java:585)
at net.asdasd.activities.Signup$CheckWetherAUserWithSuchEmailExists.doInBackground(Signup.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
... 4 more
D/Kylie(4458):hdhdu@jfjd.com
D/请求!(4458):开始
解析数据org.json.JSONException时出错:Value据我所知,PHP代码中没有任何地方实际执行json输出。生成一个数组,但不使用它做任何事情
应该有一个
if (!empty($_POST)) {
... blah blah blah...
echo json_encode($response); // <<---this is missing, apparently
} else {
echo json_encode('Something blew up');
}
if(!empty($\u POST)){
……诸如此类。。。
echo json_encode($response);//是的,你是对的:))我从来没有真正学习过php,现在我正在努力学习。谢谢!
CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(30) NOT NULL,
`user_email` varchar(50) NOT NULL,
`user_password` varchar(100) NOT NULL,
`user_sex` varchar(10) NOT NULL,
`user_avatar` varchar(100) DEFAULT NULL,
`user_date_registered` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user_last_seen` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`user_points` int(11) NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_name` (`user_name`,`user_email`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
D/Kylie(4458): hdhdu@jfjd.com
D/request!(4458): starting
Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
threadid=9: thread exiting with uncaught exception (group=0x4001e578)
FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
Caused by: java.lang.NullPointerException
net.asdasd.activities.Signup$CheckWetherAUserWithSuchEmailExists.doInBackground(Signup.java:585)
at net.asdasd.activities.Signup$CheckWetherAUserWithSuchEmailExists.doInBackground(Signup.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
... 4 more
if (!empty($_POST)) {
... blah blah blah...
echo json_encode($response); // <<---this is missing, apparently
} else {
echo json_encode('Something blew up');
}