java - 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" }
]
}
解决方案
- 首先创建资产文件夹
将您的 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)
推荐阅读
- kubernetes - Kubernetes Helm 中的常见依赖
- git - 如何修复 GIT 中损坏的存储库
- azure - Azure Functions 2.x 中带有查询字符串的 sqlQuery?
- mysql - 是否可以使用重复数据加入 2 个视图?
- c# - 反序列化未填充我的变量/response.data 显示 null
- python - Django:返回正确的分页器页面
- android - android上的React native在获取API JSON时提供空列表
- r - 如何计算跨列字数的加权总和?
- php - 如何使用 htaccess 保护文件夹或目录
- java - 如何使用 Eclipse JDT AST 向 MethodInvocation 添加类型转换?