Читать с нескольких файлов .json Android

есть приложение, в нём есть возможность поиска информации.

  private void loadJson() {
        StringBuffer sb = new StringBuffer();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(getAssets().open(AppConstant.CONTENT_FILE)));
            String temp;
            while ((temp = br.readLine()) != null)
                sb.append(temp);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        parseJson(sb.toString());
    }

    private void parseJson(String jsonData) {
        try {

            JSONObject jsonObjMain = new JSONObject(jsonData);
            JSONArray jsonArray1 = jsonObjMain.getJSONArray(AppConstant.JSON_KEY_ITEMS);

            for (int i = 0; i < jsonArray1.length(); i++) {
                JSONObject jsonObj = jsonArray1.getJSONObject(i);

                JSONArray jsonArray2 = jsonObj.getJSONArray(AppConstant.JSON_KEY_CONTENT);
                for (int j = 0; j < jsonArray2.length(); j++) {
                    String details = jsonArray2.get(j).toString();
                    mItemList.add(details);
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        hideLoader();
    }

Как видно в этом методе ПОИСК читает с одного файла (json через константы)

open(AppConstant.CONTENT_FILE)));

Подскажите как сделать, что бы метод читал несколько файлов json??


Ответы (1 шт):

Автор решения: Alex_Skvortsov

Вам просто нужно передавать путь json - файла в параметры:

private void loadJson(String filePath) {
    StringBuffer sb = new StringBuffer();
    BufferedReader br = null;
    try {
        br = new BufferedReader(new InputStreamReader(getAssets().open(filePath)));
        String temp;
        while ((temp = br.readLine()) != null)
            sb.append(temp);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    parseJson(sb.toString());
}

Дальше - просто вызвать этот метод для каждого файла.

Например, то, что у Вас есть сейчас можно получить так:

loadJson(AppConstant.CONTENT_FILE);
→ Ссылка