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);
大家好,我是 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);