在我的Kotlin项目中,我必须使用com.google.gson.JsonObject
。
val jsonRedir = JsonObject()
someCustomMethod(jsonRedir)
问题在于方法someCustomMethod
具有一个Serializable参数。但是JsonObject
不是Serializable
。
我该如何解决?
我必须将精确的JsonElement
或JsonObject
传递给someCustomMethod
答案 0 :(得分:2)
您可以创建一个类,该类可以通过实现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))
}
}