Value of type java.lang.String cannot be converted to JSONArray

0

Cześć, mam dosyć popularny problem z konwertowaniem. Funkcjonalność odpowiada za wyświetlanie rekordów z bazy, poniżej dokładny błąd oraz kod.
Połączenie z bazą mysql znajduje się w PHP, baza utworzona lokalnie przez xampp. Proszę o pomoc.

Błąd:

com.android.volley.ParseError: org.json.JSONException: Value of type java.lang.String cannot be converted to JSONArray

Poniżej kod javy pisany w android studio:

JsonArrayRequest request = new JsonArrayRequest(Connection.SHOW_ALL_ORDERS_DATA_URL, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray array) {

                for (int i = 0; i < array.length(); i++) {
                    try {
                        JSONObject object = array.getJSONObject(i);
                        String nrorder = object.getString("nrorder").trim();
                        String nrarticle = object.getString("nrarticle").trim();
                        String namearticle = object.getString("namearticle").trim();
                        String quantity = object.getString("quantity").trim();
                        String place = object.getString("place").trim();
                        String comments = object.getString("comments").trim();

                        Orders orders = new Orders();
                        orders.setNrorder(nrorder);
                        orders.setNrarticle(nrarticle);
                        orders.setNamearticle(namearticle);
                        orders.setQuantity(quantity);
                        orders.setPlace(place);
                        orders.setComments(comments);
                        ordersList.add(orders);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
                ordersAdapter = new OrdersAdapter(ProjectList.this,ordersList);
                recyclerView.setAdapter(ordersAdapter);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(ProjectList.this, "ErrorResponse", Toast.LENGTH_SHORT).show();
            }
    });
        RequestQueue requestQueue = Volley.newRequestQueue(ProjectList.this);
        requestQueue.add(request)

0

Nie podajesz JSONa
ale prawdopodobnie dla któregoś pola masz sprzeczność: używasz jako tablicy a w JSON jest prosta dana, czy raczej na odwrót

0

Sprawdzałem każdą po kolei zostawiając tylko jedną kolumnę do wyświetlania i nic się nie zmieniło

0

Moja rada: zamień volley + ręczne parsowanie jsona na retrofit + gson (albo moshi, gson jest łatwiejszy na start). Dzięki temu nie będziesz mieć takich problemów.

Wklej json który chcesz parsować to powiem Ci co jest źle. Wklej go dokładnie taki jaki dostajesz z serwera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1