android获取json响应
嘿,伙计们,我对Android网络概念还不熟悉。我想发送用户名、密码、,从android应用程序到php服务器的imei编号和位置。我已经完成了发送部分。现在我的问题是如何接收响应。我想根据状态1或0,我想移动到下一页。所以任何人都知道如何执行此操作。欢迎您android获取json响应,android,android-networking,android-json,Android,Android Networking,Android Json,嘿,伙计们,我对Android网络概念还不熟悉。我想发送用户名、密码、,从android应用程序到php服务器的imei编号和位置。我已经完成了发送部分。现在我的问题是如何接收响应。我想根据状态1或0,我想移动到下一页。所以任何人都知道如何执行此操作。欢迎您 private static final String REGISTER_URL="http://vPC70.com/App/login.php"; username = editTextUserName.getT
private static final String REGISTER_URL="http://vPC70.com/App/login.php";
username = editTextUserName.getText().toString().toLowerCase();
userpassword=editTextPassword.getText().toString().toLowerCase();
loc="11.295756,77.001890";
imeino = "12312312456";
register(username, userpassword, imeino, loc);
private void register(final String username, final String userpassword,
String imeino, String loc) {
String urlSuffix = "?
username="+username+"&userpassword="+userpassword+"&imeino="+imeino
+"&location="+loc;
class RegisterUser extends AsyncTask<String,String , String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(LoginActivity.this, "Please
Wait",null, true, true);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
}
@Override
protected String doInBackground(String... params) {
String s = params[0];
BufferedReader bufferedReader = null;
try {
URL url = new URL(REGISTER_URL+s);
HttpURLConnection con = (HttpURLConnection)
url.openConnection();
bufferedReader = new BufferedReader(new
InputStreamReader(con.getInputStream()));
String result;
result = bufferedReader.readLine();
return result;
}catch(Exception e){
return null;
}
}
}
RegisterUser ru = new RegisterUser();
ru.execute(urlSuffix);
如果响应为1,则消息登录成功
如果响应为0,则onPostExecuteString中的PostExecute中的消息密码无效,您可以将结果转换为json并检查状态值,如
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
JsonObject object = new JsonObject(s);
if(object.optString("status").equals("1"))
{
// Your Logic here
}
}
创建POJO/Model类以转换您的响应 像这样
public class LoginResponse{
@SerializedName("Login")
@Expose
private List<Login> login = null;
public List<Login> getLogin() {
return login;
}
public void setLogin(List<Login> login) {
this.login = login;
}
}
public class Login {
@SerializedName("status")
@Expose
private String status;
@SerializedName("message")
@Expose
private String message;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
在这里您可以检查条件:
if(response !=null && response.getLogin() !=null)
{
if(response.getLogin().getStatus().equalIgnoreCase("1"))
{
// show toast Login Successfully !!! and move to next screen
}
else if(response.getLogin().getStatus().equalIgnoreCase("0"))
{
// Invalid Password !!! your logic here
}
}
下面是根据您的响应字符串的解析器
private void parseResponseJson(String response) throws JSONException {
JSONObject jsonObject = new JSONObject(response).getJSONArray("Login").getJSONObject(0);
String status = jsonObject.getString("status");
String message = jsonObject.getString("message");
}
从服务器获得响应后,根据状态在toast中显示消息
try {
JSONObject jobj = new JSONObject(response);
String status = jobj.getString("status");
String msg = jobj.getString("message");
if (status.equals("1")) {
//move to next page
Toast.makeText(LoginActivity.this, msg,Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(LoginActivity.this, msg,Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
简单有效的解决方案。使用谷歌的Gson库。您可以像这样轻松地从json字符串创建hashmap
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson(JSONString, type);
你想解析JSON吗?你有什么想法吗你可以在karthikeyan检查我的答案
try {
JSONObject jobj = new JSONObject(response);
String status = jobj.getString("status");
String msg = jobj.getString("message");
if (status.equals("1")) {
//move to next page
Toast.makeText(LoginActivity.this, msg,Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(LoginActivity.this, msg,Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson(JSONString, type);