Android: чтение JSON из папки семпла - PullRequest
0 голосов
/ 28 октября 2019

Я хотел бы заполнить RecyclerView моим файлом operations.json, который находится в папке семплов данных. Как я могу прочитать этот образец файла JSON? Мой operations.json файл выглядит так:

{
  "data" :[
    { "name": "123", "image": "@drawable/ic_cloud_download_black_24dp" },
    { "name": "456", "image": "@drawable/ic_arrow_forward_black_24dp" },
    { "name": "789", "image": "@drawable/ic_photo_camera_black_24dp" },
    { "name": "asd", "image": "@drawable/ic_alarm_off_black_24dp" },
    { "name": "qwe", "image": "@drawable/ic_assignment_black_24dp" },
    { "name": "rty", "image": "@drawable/ic_map_black_24dp" },
    { "name": "asd", "image": "@drawable/ic_sms_black_24dp" },
    { "name": "fgh", "image": "@drawable/ic_print_black_24dp" },
    { "name": "zxc", "image": "@drawable/ic_library_books_black_24dp" },
    { "name": "vbn", "image": "@drawable/ic_settings_black_24dp" },
    { "name": "jkl", "image": "@drawable/ic_android_black_24dp" },
    { "name": "yui", "image": "@drawable/ic_tv_black_24dp" },
    { "name": "ert", "image": "@drawable/ic_exit_to_app_black_24dp" }
  ]
}

Ответы [ 3 ]

1 голос
/ 28 октября 2019
  • Сначала создайте папку активов
  • Поместите файл json в папку активов

    Asset folder

  • Считайте файл json, следуя коду

    private fun loadJSONFromAsset(): String? { val json: String? try { val inputStream = activity!!.assets.open("search_key.json") val size = inputStream.available() val buffer = ByteArray(size) inputStream.read(buffer) inputStream.close() json = String(buffer, Charsets.UTF_8) } catch (ex: IOException) { ex.printStackTrace() return null } return json }

  • Разобрать свой json с помощью библиотеки GSON

    val data = Gson().fromJson(loadJSONFromAsset(), Data::class.java)

1 голос
/ 28 октября 2019

Вы должны сделать шаг за шагом, как показано ниже, или просмотреть учебник ( с использованием языка Kotlin ):

  • Создать папку Assets
  • Добавить свойsample_data.json в папку Assets.
  • Чтение JSON из файла sample_data.json.
  • Анализ строки JSON в модели данных с использованием Gson.
0 голосов
/ 28 октября 2019

Я не хочу копировать файл json в ресурсы, так что srcDirs лучшее решение для этого. Модификация может быть сделана в файле приложения Gradle:

android {
    sourceSets.main.assets.srcDirs += file('sampleData')
}

Позже этот файл можно прочитать как файл актива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...