【问题标题】:Android: Reading json from sampledata folderAndroid:从 sampledata 文件夹中读取 json
【发布时间】:2019-10-28 03:03:57
【问题描述】:

我想用我的自定义 operations.json 文件填充 RecyclerView,该文件位于 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" }
  ]
}

【问题讨论】:

  • 欢迎来到 SO!当您提出问题时,请尝试添加最少的内容:输入样本、预期输出样本、您尝试了什么、研究以及您卡在哪里。确切地说,你尝试了什么?
  • 嗨@DavidGarcíaBodego,sampledata 文件夹是特定目录。我不知道从那个位置可以进行这种读取操作。因此我没有尝试任何东西。通过互联网搜索,但没有关于从 sampledata 文件夹中读取文件的线索。

标签: java android json kotlin


【解决方案1】:
  • 首先创建资产文件夹
  • 将您的 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)

【讨论】:

    【解决方案2】:

    您应该按照以下步骤逐步操作或观看教程(using Kotlin Language):

    • 创建Assets 文件夹
    • 将您的sample_data.json 添加到Assets 文件夹。
    • sample_data.json 文件中读取 JSON。
    • 使用 Gson 将 JSON 字符串解析为数据模型。

    【讨论】:

      【解决方案3】:

      我不想将 json 文件复制到资产中,因此 srcDirs 是更好的解决方案。可以在 App 的 Gradle 文件中进行修改:

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

      以后这个文件可以作为资产文件读取。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        • 2018-12-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多