Читать с нескольких файлов .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);