Java Gson:如何将JsonObject/JsonElement传递为可序列化的?
在我的Kotlin项目中,我必须使用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
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