我如何通过齐射从json响应中获取字符串

时间:2019-03-12 09:28:02

标签: android json

如何通过json对象键获取字符串以显示未找到的数据, 如果json数组数据可用,则以下代码可以正常工作。如果找不到数据,则显示排球错误,如

  

com.android.volley.ClientError

public void posLoad(){
    progressBar.setVisibility(View.VISIBLE);
    String url = getString(R.string.myPostLoad)+"01858456388";

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            try{
                JSONObject jsonObject = new JSONObject(response);

                String err = jsonObject.getString("message");
                if (err.equals("no")){
                    Toast.makeText(MyPosts.this,"No post found",Toast.LENGTH_SHORT).show();
                }else{
                    JSONArray jsonArrayData = jsonObject.getJSONArray("posts");

                    for (int i=0; i<jsonArrayData.length(); i++){

                        Post post = new Post();

                        JSONObject jsonObject1 = jsonArrayData.getJSONObject(i);

                        //user data
                        post.setName(jsonObject1.getString("name"));
                        post.setEmail(jsonObject1.getString("email"));
                        post.setPhoto(jsonObject1.getString("photo"));
                        postList.add(post);
                    }
                }
                progressBar.setVisibility(View.GONE);

            }catch (JSONException e){
                e.printStackTrace();
            }
            postAdapter.notifyDataSetChanged();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            progressBar.setVisibility(View.GONE);
            Toast.makeText(MyPosts.this,error.toString(),Toast.LENGTH_SHORT).show();
        }
    });
    MySingleton.getInstance().addToRequestQueue(stringRequest);
}

(1)json响应是找不到数据时

{“消息”:“否”}

(1)json响应是发现数据时

{“职位”:[{“名称”:“ Saif ullah”,“电子邮件”:“ nzsn”,“照片”:“ 01858456387.png”,“ created_at”:“ 2012-03-19 12:57 :42“,” updated_at“:” 2012-03-19 12:57:42“}]}

找不到数据的服务器脚本

echo json_encode(array("message" => "no"));

从第一个响应没有得到字符串。 我该如何解决.....帮助我...

1 个答案:

答案 0 :(得分:2)

当响应不是no时,您不会弯腰代码的执行,只需在if之后添加else即可。

if (err.equals("no")){
   Toast.makeText(MyPosts.this,"No post found",Toast.LENGTH_SHORT).show();
} else {
   JSONArray jsonArrayData = jsonObject.getJSONArray("posts");
   ...
}