Android无法检查json成功和错误响应
我正在与一种情况作斗争。我正在从PHP服务器返回一些json数据我的代码如下: PHP API代码:Android无法检查json成功和错误响应,android,json,Android,Json,我正在与一种情况作斗争。我正在从PHP服务器返回一些json数据我的代码如下: PHP API代码: if ($user != false) { $result = mysql_query("SELECT stock_name,stock_location FROM btrack_stock WHERE user_id= '$user_id'") or die(mysql_error()); $rows = array(); $count = my
if ($user != false) {
$result = mysql_query("SELECT stock_name,stock_location FROM btrack_stock WHERE user_id= '$user_id'") or die(mysql_error());
$rows = array();
$count = mysql_num_rows($result);
if($count > 0){
while ($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
echo json_encode(array('usertransaction' => $rows));
}else{
$response["error"] = 1;
$response["error_msg"] = "You do not have any transaction so far. ";
echo json_encode($response);
}
}
在android方面,我使用一个扩展AsyncTask的类,在onPostExecute上,我使用:
protected void onPostExecute(JSONObject json) {
try {
if(json.getString("error_msg") != null){
String err = json.getString("error_msg");
stock_error.setText(err);
stock_error.setVisibility(View.VISIBLE);
pDialog.dismiss();
}else{
pDialog.dismiss();
Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_LONG).show();
}
}catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
事实上,我想显示从PHP服务器返回的错误消息,并在收到成功消息时显示所有数据(这里我展示了一个Toast)。
我的问题是,如果json返回错误消息,我们如何显示错误消息;如果json不返回错误消息,我们如何显示成功
*如果我得到错误消息作为json响应,我的代码可以正常工作,但是如果我返回其他数据,应用程序将在进程对话框中卡住,并且在LogCat中显示一条警告“没有错误消息的值”
提前感谢。试试这个:
if json.isNull("error_msg") {
do_something()
}
else {
json.getString("error_msg");
do_something_else()
}
使用
if(json.has(“error\u msg”)
非常感谢您的解决方案解决了这个问题。