Как отфильтровать Json результат - PullRequest
0 голосов
/ 31 марта 2020

Мне нужна помощь с фильтром результатов JSON в моем android студийном проекте. Я могу успешно извлечь данные JSON, но пытаюсь внедрить в них функцию поиска. Вот мой код для получения строки поиска

    private void StartSearching(String search_now) {
        ArrayList<TrackClass> trackClassArrayList1 = new ArrayList<>();
        for (TrackClass object : trackClassList) {
            if (object.getTrack_Name().toLowerCase().contains(search_now.toLowerCase())) {
                trackClassArrayList1.add(object);
            }
            getWebApiDataUsingVolleySearch(trackClassArrayList1);
        }
    }

А вот код для получения результата поиска данных

private void getSearch(ArrayList<TrackClass> trackClassArrayList1){
        String WebDataUrl = "link for the json file here";

        JsonObjectRequest jsonArrayRequest = new JsonObjectRequest(Request.Method.GET, WebDataUrl,
                null,
                response -> {
                    try{
                        JSONArray jsonArray = response.getJSONArray("NAMES");

                        for(int i = 0; i < jsonArray.length(); i++) {
                            JSONObject jsonObject = jsonArray.getJSONObject(i);
                            JSONArray jsonArray1 = jsonObject.getJSONArray("names");

                            //for (int k = 0; k < 3; k++) {
                            for (int k = 0; k < jsonArray1.length(); k++) {
                                JSONObject jsonObject1 = jsonArray1.optJSONObject(k);
                                id_data = jsonObject1.optString("id");
                                title_data = jsonObject1.optString("title");

                                TrackClass trackClass = new TrackClass();
                                trackClass.setTrack_Id(id_data);
                                trackClass.setTrack_Name(title_data);
                                trackClassArrayList1.add(trackClass);

                                tracksAdapter = new TracksAdapter(Tracks.this, R.layout.tracks_adapter, trackClassArrayList1);
                                tracksAdapter.setListData(trackClassArrayList1);
                                listView.setAdapter(tracksAdapter);
                                tracksAdapter.notifyDataSetChanged();
                            }


                        }
                    }catch (JSONException e){
                    }
                },
        );
        requestQueue.add(jsonArrayRequest);

    }

Примечание ** этот код отлично работает, когда я использую его для поиск в базе данных firebase, которую я ожидал, поскольку firebase также использует JSON файловую структуру

...