首页 > 解决方案 > Android:从 sampledata 文件夹中读取 json

问题描述

我想填写RecyclerView我的自定义operations.json文件,该文件位于 sampledata 文件夹中。我如何阅读该示例 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" }
  ]
}

标签: javaandroidjsonkotlin

解决方案


  • 首先创建资产文件夹
  • 将您的 json 文件放在资产文件夹中

    资产文件夹

  • 读取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 }

  • 使用 GSON 库解析 json

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


推荐阅读