```class MoshiSerializer(block: Moshi.Builder.() -...
# ktor
d
Copy code
class MoshiSerializer(block: Moshi.Builder.() -> Moshi = { build() }) : JsonSerializer {

    private val backend: Moshi = Moshi.Builder().run { block() }

    override fun write(data: Any): OutgoingContent = TextContent(backend.adapter<Any>(Object::class.java).toJson(data), ContentType.Application.Json)

    override suspend fun read(info: TypeInfo, response: HttpResponse): Any {
        val text= response.readText()
        return backend.adapter<Any>(info.type.java).fromJson(text)!!
    }
}