在Android Studio中使用Volley解析ArrayJson时出现错误请求 [英] Bad Request while parsing ArrayJson using Volley in Android Studio

查看:140
本文介绍了在Android Studio中使用Volley解析ArrayJson时出现错误请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我也是Android的JSON解析的新手,我尝试了Internet上的教程,以及如何解析未命名数组,这是我的Json数组(

I'm new in JSON parsing also for Android, I tried a tutorial found in Internet and how to parse an UnNamed Array this is my Json Array (https://webservicesocs.herokuapp.com/api/DispoMachines) that i want to parse and display it in Android in ListView And this is my code in Android using Volley Library :

 String ServiceURL = "https://webservicesocs.herokuapp.com/api/DispoMachines";
    machinesListVeiw = (ListView) findViewById(R.id.machines_lv);
    final String result = "";
    final ArrayList<Machine> machines = new ArrayList<>();
    JsonObjectRequest jsonObjReq  = new JsonObjectRequest(Request.Method.GET, ServiceURL, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {
                JSONArray json = new JSONArray(result);

                for(int i=0;i<json.length();i++){
                    JSONObject e = json.getJSONObject(i);
                    Machine machine = new Machine();
                    machine.setMachineId(e.getString("MachineId"));
                    machine.setStatut(e.getString("Statut"));
                    machine.setMachineImage(e.getString("MachineImage"));
                    machine.setTempsResteEnMinutes(e.getString("TempsResteEnMinutes"));
                    machines.add(machine);
                }
                MachineAdapter arrayAdapter = new MachineAdapter(AvaiableMachinesActivity.this, machines);
                machinesListVeiw.setAdapter(arrayAdapter);

            } catch (JSONException e) {
                Toast.makeText(AvaiableMachinesActivity.this, "BAD JSON ", Toast.LENGTH_SHORT).show();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            Toast.makeText(AvaiableMachinesActivity.this, "BAD REQUEST", Toast.LENGTH_SHORT).show();
        }
    });
    AppController.getInstance(AvaiableMachinesActivity.this).addToRequestQueue(jsonObjReq);

**我收到了BAD REQUEST的错误,由于Volley Library,这是一个ErrorResponse **

**I get the error of BAD REQUEST, so it's an ErrorResponse due to Volley Library **

推荐答案

您的json响应以JSONArray开头,您可以将请求更改为JSONArray.

your json response is start with JSONArray you can change your request to JSONArray.

 String ServiceURL = "https://webservicesocs.herokuapp.com/api/DispoMachines";
    machinesListVeiw = (ListView) findViewById(R.id.machines_lv);
    final String result = "";
    final ArrayList<Machine> machines = new ArrayList<>();

JsonArrayRequest req = new JsonArrayRequest(urlJsonArry,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d(TAG, response.toString());

                    try 
                    {
                        // Parsing json array response
                        // loop through each json object

              for(int i=0;i<response.length();i++)
              {
                  JSONObject e= (JSONObject) response.get(i);

                  Machine machine = new Machine();
                  machine.setMachineId(e.getString("MachineId"));
                  machine.setStatut(e.getString("Statut"));
                  machine.setMachineImage(e.getString("MachineImage"));
       machine.setTempsResteEnMinutes(e.getString("TempsResteEnMinutes"));
                  machines.add(machine);
             }
              MachineAdapter arrayAdapter = new MachineAdapter(AvaiableMachinesActivity.this, machines);
              machinesListVeiw.setAdapter(arrayAdapter);
                    }
                    catch (JSONException e) {
                        e.printStackTrace();

                    }

                    hidepDialog();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d(TAG, "Error: " + error.getMessage());

                }
            });

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(req);

这篇关于在Android Studio中使用Volley解析ArrayJson时出现错误请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆