gpt4 book ai didi

java - 如何比较从Web服务中提取的3个变量(equalsIgnoreCase)?

转载 作者:行者123 更新时间:2023-12-02 11:13:05 24 4
gpt4 key购买 nike

我花了几天时间尝试探索 Volley ,最后我设法找到使用 Method.POST 的方法。我正在使用 equalsIgnoreCase 创建登录名。我的 Web 服务返回一个包含 3 个参数的字符串。

状态 - 数据 - 消息

 {"state":"success","data":{"nombre":"user1","email":"user1@gmail.com","cod_user":"8"},"message":"The session was started correctly!"}

我看到了几个例子,它只适用于一个参数,例如“成功”

    private void login() {

if (!validate()) return;

progress = new ProgressDialog(this);
progress.setMessage("Starting...");
progress.show();
String url = Connection.URL_WEB_SERVICE +"login.php";

stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
User userParcelable = new User();;
Log.i("ANSWER JSON: ",""+response);
try {
JSONObject jsonObject = new JSONObject(response);
if(jsonObject.names().get(0).equals("success")){

email.setText("");
password.setText("");

userParcelable.setId(jsonObject.getJSONArray("user").getJSONObject(0).getInt("code"));
userParcelable.setEmail(jsonObject.getJSONArray("user").getJSONObject(0).getString("email"));
userParcelable.setName(jsonObject.getJSONArray("user").getJSONObject(0).getString("name"));

Toast.makeText(getApplicationContext(),jsonObject.getString("success"), Toast.LENGTH_SHORT).show();
progreso.dismiss();

Intent intent = new Intent(getApplicationContext(),MainActivity.class);
intent.putExtra("DATA_USER",userParcelable);
startActivity(intent);
finish();
}else{
Toast.makeText(getApplicationContext(),jsonObject.getString("error"), Toast.LENGTH_SHORT).show();
Log.i("RESPUESTA JSON: ",""+jsonObject.getString("error"));
}
} catch (JSONException e) {
e.printStackTrace();
}

希望您能稍微介绍一下我,谢谢您的宝贵时间。

最佳答案

如果您只想检查 json 对象响应中是否存在参数,则可以使用 has仅当属性存在于对象中时才会返回 true 方法,例如

// && mean every condition should be true
if(jsonObject.has("success") && jsonObject.has("data") &&
jsonObject.has("message") ){

这里还有更多问题

userParcelable.setId(jsonObject.getJSONArray("user").getJSONObject(0).getInt("code"));

您的代码中没有 jsonarray,因此上面的代码将导致崩溃,因此请使用此

userParcelable.setId(jsonObject.getJSONObject("data").optLong("cod_user"));
userParcelable.setEmail(jsonObject.getJSONObject("data").optString("email"));
userParcelable.setName(jsonObject.getJSONObject("data").optString("name"));

并使用optLong,因为代码包含一个字符串,并且 key 是cod_user而不是code

关于java - 如何比较从Web服务中提取的3个变量(equalsIgnoreCase)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50478635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com