Разбор массива от Flask до Android - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь проанализировать массив, полученный с моего флеш-сервера.Массив выглядит следующим образом.

"[{\"firstName\": \"Roy\", \"lastName\": \"Augustine\"}]"

Я анализирую массив в Android-студии, используя следующий код.

private void loadDrives() {

    StringRequest stringRequest = new StringRequest(Request.Method.GET, "http://142.93.216.24:5000/",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        //converting the string to json array object
                        JSONArray array = new JSONArray(response);

                        //traversing through all the object
                        for (int i = 0; i < array.length(); i++) {

                            JSONObject jsonObject = array.getJSONObject(i);
                            //adding the product to product list
                            driveList.add(new TestMl(
                                    jsonObject.getString("firstName"),
                                    jsonObject.getString("lastName")
                            ));
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });

    //adding our stringrequest to queue
    Volley.newRequestQueue(this).add(stringRequest);
}

Однако я получаю следующую ошибку.

 org.json.JSONException: Value [{"firstName": "Roy", "lastName": "Augustine"}] of type java.lang.String cannot be converted to JSONObject

Ошибка предполагает, что JSON успешно извлекается, но он не может успешно проанализировать массив.Кто-нибудь может предложить подходящее решение?

1 Ответ

0 голосов
/ 24 октября 2018

ВЫ извлекаете данные, используя неверное имя .. это lastName не lastname

Измените это

driveList.add(new TestMl(
array.getString("firstname"),
array.getString("lastname")
));

на

driveList.add(new TestMl(
array.getString("firstName"),
array.getString("lastName")
));
...