如何使用 kotlin 读写本地 JSON

加里·弗里温

我按照教程设置从资产中读取 JSON 文件并使用 GSON 进行解析。这一切都很好,但我希望用户也能够通过在应用程序中进行更改来编辑 json 文件。

我读到您无法编辑资产文件夹中的文件,但我不知道应该将文件放在哪里以及如何正确引用它的路径,而且在线文章似乎对我没有帮助。所以,两个问题:

1 ) 我可以将我的 JSON 文件移动到我的 MainActivity 目录中的一个新包中吗?这会包含在应用程序 APK 中吗?

2)我如何加载这个...?从我使用的资产加载当前 json

        val mySquibsJSONfile = getApplication<Application>().assets.open("MySquibs.json")

应用程序文件夹中的文件的等价物是什么./src/main/java/com/myname/myapp/json/MySquibsLocal.json

我已经尝试了下面的各种版本,但无法让它工作......

val mySquibsJSONfile = File("./src/main/java/com/myname/myapp/json/MySquibsLocal.json").inputStream()

那么替换文件中的json容易吗?

灰胡子怪人

您打包到 APK 中的任何内容都将是只读的,因为 APK 是一个二进制文件,并且在安装时不会展开。因此,仅将您的资产移至新包无济于事。并且“src”目录不会出现在 APK 中。

您必须在运行时将资产复制到 Android 的文件系统,并对该副本进行任何修改。

Android 现在对读取和写入文件的位置和方式有很多限制,因此您可能需要非常仔细地阅读:https : //developer.android.com/training/data-storage

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java读写本地数据库?

如何使用翻新Kotlin从JSON对象中的特定字段获取数据

在Kotlin中使用Gson解析JSON数组

如何使用Kotlin + Jackson将JSON反序列化为List <SomeType>

如何在Kotlin中的Android中读写txt文件

如何使用RxJava和Kotlin从List <Item>获取Arraylist中的Json响应

如何使用Kotlin在Android的Apollo GraphQL中创建JSON CustomTypeAdapter

如何使用Kotlin从路径读取json文件

如何从json构造我的Kotlin API类?(使用莫西)

如何使用名称中带有冒号的json元素的类数据-Kotlin

如何在商店redux中编写本地json?

如何在Kotlin中使用gson解析翻新的json主体

如何使用gson在Kotlin的Json数组中插入Json对象

如何在kotlin中生成json对象?

如何在Kotlin中使用Volley正确解析此JSON响应

Kotlin使用Gson反序列化本地json文件

如何使用Pyspark从Google Colab读写本地MySQL Server 8?

如何在Flutter Web上本地读写图像文件?

如何在Kotlin Android上使用Retrofit2,RxJava2读取JSON文件

如何用Polymer重写本地HTML输入元素?

使用node.js读写文件(JSON)

如何使用mysql本地json函数生成嵌套的json对象?

如何读写外部json文件?

我如何写本地网址

如何使用 kotlin android 从文件中获取和使用 json?

使用 Retrofit Kotlin 的 JSON 对象

如何使用纯 Kotlin 序列化反序列化动态 Json

Android Kotlin Volley 如何发送 JSON 数据

如何使用 Retrofit 在 Kotlin 中解析 Json?