Java Gson:如何将JsonObject/JsonElement传递为可序列化的?

Java Gson:如何将JsonObject/JsonElement传递为可序列化的?,java,kotlin,gson,Java,Kotlin,Gson,在我的Kotlin项目中,我必须使用com.google.gson.JsonObject val jsonRedir = JsonObject() someCustomMethod(jsonRedir) 问题是方法someCustomMethod有一个可序列化的参数。但是JsonObject不可序列化 我怎样才能解决这个问题 我必须将确切的JsonElement或JsonObject传递给someCustomMethod您可以创建一个类,通过实现Serializable接口并实现writeOb

在我的Kotlin项目中,我必须使用
com.google.gson.JsonObject

val jsonRedir = JsonObject()
someCustomMethod(jsonRedir)
问题是方法
someCustomMethod
有一个可序列化的参数。但是
JsonObject
不可
序列化

我怎样才能解决这个问题


我必须将确切的
JsonElement
JsonObject
传递给
someCustomMethod
您可以创建一个类,通过实现
Serializable
接口并实现
writeObject
readObject
来序列化/反序列化您的JsonObject,如下所示:

class JsonObjectSerializer(val gson: Gson, val jsonObject: JsonObject) : Serializable {

    @Throws(ClassNotFoundException::class, IOException::class)
    private fun readObject(aInputStream: ObjectInputStream) {
        val gson = aInputStream.readUTF()
        jsonObject = this.gson.fromJson(gson, JsonObject::class.java!!)
    }

    @Throws(IOException::class)
    private fun writeObject(aOutputStream: ObjectOutputStream) {
        aOutputStream.writeUTF(gson.toJson(jsonObject))
    }
}

更改方法头或包装JsonObject,如果JsonObject不可序列化,则无法将其更改为可序列化。您可以创建一个扩展
JsonObject
并实现
Serializable
的新类,并将该类的对象传递给
someCustomMethod