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

Android 如何使用gson在Kotlin的Json数组中插入Json对象,android,json,kotlin,gson,Android,Json,Kotlin,Gson,我对使用gson是新手。我曾多次尝试在Kotlin中的Json数组中插入Json对象。我成功地用Json对象创建了Json数组,并将其保存到内部存储器中。但是,我无法使用此代码在其中插入Json对象。有没有关于如何实现这一目标的建议?我试图从内部存储获取文件,但无法从JSON获取,因此我不确定这个想法是否可行。数组中的数据都是字符串。这是我的密码: fun save(){ var gson = Gson() val filename = "name"

我对使用gson是新手。我曾多次尝试在Kotlin中的Json数组中插入Json对象。我成功地用Json对象创建了Json数组,并将其保存到内部存储器中。但是,我无法使用此代码在其中插入Json对象。有没有关于如何实现这一目标的建议?我试图从内部存储获取文件,但无法从JSON获取,因此我不确定这个想法是否可行。数组中的数据都是字符串。这是我的密码:

    fun save(){
        var gson = Gson()
        val filename = "name"
        val file = context?.getFileStreamPath(filename)
        if(file == null || !file.exists()){
            val array= ArrayList<arraylist>()
            array.add(arraylist("1","2","3"))
            var json:String=gson.toJson(array).replace("\\n", "\n")
            context?.openFileOutput(filename, Context.MODE_PRIVATE).use {
                it?.write(json.toByteArray())
            }
        }
        else{
            val file = File(context?.filesDir, filename)
            val contents = file.readText()
            val gson = GsonBuilder().create()
            val content = gson.fromJson(contents, arraylist::class.java)
            content.add(arraylist("1","2","3"))
            var json:String=gson.toJson(content).replace("\\n", "\n")
        }
    }
fun save(){
var gson=gson()
val filename=“name”
val file=context?.getFileStreamPath(文件名)
如果(file==null | |!file.exists()){
val数组=ArrayList()
add(arraylist(“1”、“2”、“3”))
var json:String=gson.toJson(数组).replace(“\\n”,“\n”)
context?.openFileOutput(文件名,context.MODE\u PRIVATE)。使用{
it?.write(json.toByteArray())
}
}
否则{
val file=file(上下文?.filesDir,文件名)
val contents=file.readText()
val gson=GsonBuilder().create()
val content=gson.fromJson(内容,arraylist::class.java)
添加(arraylist(“1”、“2”、“3”))
var json:String=gson.toJson(内容)。替换(“\\n”,“\n”)
}
}

我最终修复了这个问题,读取它,然后将其保存到内部存储器中。这在
else{}
语句中:

    val file1 = File(context?.filesDir, filename)
    val contents = file1.readText()
    val array = gson.fromJson(contents, Array<arraylist>::class.java)
    val arrayList = ArrayList(array.toMutableList())
    arrayList.add(devices("Finally","Works","Wow"))
    val json: String = gson.toJson(arrayList).replace("\\n", "\n")
    context?.openFileOutput(filename, Context.MODE_PRIVATE).use {
        it?.write(json.toByteArray())
    }
val file1=File(上下文?.filesDir,文件名)
val contents=file1.readText()
val array=gson.fromJson(内容,数组::class.java)
val arrayList=arrayList(array.toMutableList())
添加(设备(“最终”、“工作”、“哇”)
val json:String=gson.toJson(arrayList)。替换(“\\n”,“\n”)
context?.openFileOutput(文件名,context.MODE\u PRIVATE)。使用{
it?.write(json.toByteArray())
}

是否要使用Gson将
设备
对象存储在内部存储器中?另外,您是否在清单中声明了权限。@ShubhamPanchal是的,我想将其存储到内部存储器。我想存储一个包含对象的数组。如果文件存在,我想在Json对象数组中插入Json对象。