android 得到 json 响应

android get json response

大家好,我是 Android 网络新手 concepts.I 想从 android [=21] 向 php 服务器发送用户名、密码、IMEI 号码和位置=] 发送完毕 part.now 我的问题是如何接收 response.i 想要获得状态(1 或 0)根据我想移动到下一个 page.so 任何人都会知道怎么做,不客气。

       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);

这是回应

      {"Login":[{"status":"1","message":"Login Successfully !!!"}]}
      {"Login":[{"status":"0","message":"Invalid Password !!!"}]}

如果响应是 1 toast 消息登录成功 如果响应是 0 toast post 执行

中的消息无效密码

onPostExecute(String s) 中,您可以将结果转换为 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/模型 class 以转换您的响应。

像这样

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;
}

}

在 PostExcecute 中使用 GSON

像这样将响应转换为 POJO 对象
 Gson gson = new Gson();
 LoginResponse response = gson.toJson(result, LoginResponse.class);

这里可以查看条件:;

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();
                }

简单高效的解决方案。使用 google 的 Gson 库。您可以像这样从 json 字符串轻松创建哈希图。

Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson(JSONString, type);