Gson: Как передать JsonObject / JsonElement как сериализуемый? - PullRequest
1 голос
/ 03 апреля 2019

В моем проекте Kotlin я должен использовать com.google.gson.JsonObject.

val jsonRedir = JsonObject()
someCustomMethod(jsonRedir)

Проблема в том, что метод someCustomMethod имеет один параметр Serializable.Но JsonObject не Serializable.

Как я могу это исправить?

Я должен передать точное значение JsonElement или JsonObject someCustomMethod

1 Ответ

2 голосов
/ 03 апреля 2019

Вы можете создать класс, который может сериализовать / десериализовать ваш JsonObject, реализовав интерфейс Serializable и реализовав writeObject и readObject, как показано ниже:

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))
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...