testGson

 avatar
unknown
kotlin
3 years ago
762 B
3
Indexable
import com.google.gson.TypeAdapter
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonWriter

class UserTypeAdapter : TypeAdapter<User>() {

    override fun write(out: JsonWriter?, value: User?) {
        if (value?.age != null) {
            out?.jsonValue("{\"id\":${value.id},\"name\":\"${value.name}\",\"age\":${value.age}}")
        } else {
            out?.jsonValue("{\"id\":${value?.id},\"name\":\"${value?.name}\",\"age\":null}")
        }
    }

    override fun read(`in`: JsonReader?): User {
        `in`?.beginObject()
        val reader = `in`
        while (reader?.hasNext() == true) {
            reader.skipValue()
        }
        reader?.endObject()
        return User(1, "john", 1)
    }
}
Editor is loading...