Org.json.JSONException в залпе

Я разбираю json с помощью залпа, но он не работает и получаю ошибку. Follwing - это мой код и ответ json. пожалуйста, помогите мне решить эту проблему

 private void getStaffList() {

        showpDialog();
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        final String url = "url";


        try {

            final JSONObject jsonObj = new JSONObject();


            jsonObj.put("username", "test");
            jsonObj.put("password", "123456");


            JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
                    url, jsonObj, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    Log.d("TAG", "Main response = " + response);


                    staffarraylist=new ArrayList<DataModel>();;
                    try {
                        JSONObject jobSuccess=response.getJSONObject("TABLE_DATA");
                        Log.d("TAG", "JSONObj response = " + jobSuccess);
                        JSONArray jarMyData=jobSuccess.getJSONArray("data");
                        Log.d("TAG", "JSONArray response = " + jarMyData);
                        for (int i = 0; i < jarMyData.length(); i++) {
                            JSONArray jar = jarMyData.getJSONArray(i);

                            DataModel movie = new DataModel();
                            movie.setName(jar.getString(0));
                            movie.setOccupation(jar.getString(1));
                            movie.setPlace(jar.getString(2));
                            movie.setId(jar.getString(3));
                            movie.setDate(jar.getString(4));
                            movie.setPrice(jar.getString(5));
                            staffarraylist.add(movie);
                        }
                    }catch (JSONException e)
                    {
                        Log.d("JSONException",e.toString());
                    }


                    rcAdapter = new RecyclerViewAdapterHome(MainActivity.this,  staffarraylist);
                    recyclerView.setAdapter(rcAdapter);

                    hidepDialog();

                }

            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d("TAG", "JSONObj Error: " + error.getMessage());
                    hidepDialog();
                    //Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
                    // hide the progress dialog
                }
            });

            requestQueue.add(jsonObjReq);

        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

Logcat

Основной ответ = {"TABLE_DATA": "{\" data \ ": [[\" Tiger Nixon \ ", \" System Architect \ ", \" Edinburgh \ ", \" 5421 \ ", \" 2011/04 / 25 \ ", \" 320 800 $ \ "], [\" Гаррет Уинтерс \ ", \" Бухгалтер \ "и т. д.

D / JSONException: org.json.JSONException: Value {"data": [["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "320 800 долларов США"], [ «Гаррет Уинтерс», «Бухгалтер», «Токио», «8422», «2011/07/25», «$

0
0
70
1

Ответы 1

Сначала проверьте правильность вашего формата json с помощью щелкнув здесь и вставьте свой json для проверки. Если ответ правильный, используйте Gson. Он проанализирует ответ без каких-либо ошибок.

ответ в порядке, можете ли вы сказать, какая польза от Gson в моем случае? как пользоваться.

chris 24.11.2018 16:10

Он преобразует ваш ответ в класс pojo, поэтому вы можете использовать этот класс вместо преобразования json вручную.

Jawad Ahmed 24.11.2018 16:12

ты можешь мне помочь с этим, пожалуйста

chris 24.11.2018 16:13

Скопируйте и вставьте свой ответ json. Он создаст класс java, который вы поместите в свой проект. а затем добавьте в свой проект библиотеку gson.

Jawad Ahmed 24.11.2018 16:16

он создается как этот открытый класс Test {private String TABLE_DATA; общедоступная строка getTABLE_DATA () {return TABLE_DATA; } public void setTABLE_DATA (String TABLE_DATA) {this.TABLE_DATA = TABLE_DATA; } @Override public String toString () {return "ClassPojo [TABLE_DATA = " + TABLE_DATA + "]"; }} как проверять данные ??

chris 24.11.2018 16:30

Теперь создайте класс внутри вашего проекта с именем Test

Jawad Ahmed 24.11.2018 16:35

Gson gson = новый Gson (); Test test = gson.fromJson (ответ, Test.class);

Jawad Ahmed 24.11.2018 16:36

как разобрать массив данных

chris 24.11.2018 16:56

Другие вопросы по теме